You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

23 lines
706 B
TypeScript

// SPDX-License-Identifier: MIT
import React from 'react';
import { useSelector } from 'react-redux';
import { CombinedState } from 'reducers';
import { KeyMap } from 'utils/mousetrap-react';
const ShortcutsContext = React.createContext<KeyMap | null>(null);
const { Provider: ContextProvider } = ShortcutsContext;
function ShortcutsProvider({ children }: { children: React.ReactNode }): JSX.Element {
const keyMap = useSelector((state: CombinedState) => state.shortcuts.keyMap);
return (
<ContextProvider value={keyMap}>
{children}
</ContextProvider>
);
}
export default ShortcutsContext;
export const ShortcutsContextProvider = React.memo(ShortcutsProvider);