import {createContext, useCallback, useContext, useState} from 'react' import {useHotkeysContext} from '#/lib/hotkeys' type StateContext = boolean type SetContext = (v: boolean) => void const stateContext = createContext(false) stateContext.displayName = 'DrawerOpenStateContext' const setContext = createContext((_: boolean) => {}) setContext.displayName = 'DrawerOpenSetContext' export function Provider({children}: React.PropsWithChildren<{}>) { const [state, setState] = useState(false) const {disableScope, enableScope} = useHotkeysContext() const setDrawerOpen = useCallback( (open: boolean) => { if (open) { disableScope('global') } else { enableScope('global') } setState(open) }, [disableScope, enableScope], ) return ( {children} ) } export function useIsDrawerOpen() { return useContext(stateContext) } export function useSetDrawerOpen() { return useContext(setContext) }