Files
discord.js/apps/website/src/contexts/nav.tsx
2023-11-14 01:26:22 +01:00

31 lines
630 B
TypeScript

'use client';
import {
type PropsWithChildren,
type Dispatch,
type SetStateAction,
createContext,
useContext,
useState,
useMemo,
} from 'react';
export const NavContext = createContext<{
opened: boolean;
setOpened: Dispatch<SetStateAction<boolean>>;
}>({
opened: false,
setOpened: (_) => {},
});
export const NavProvider = ({ children }: PropsWithChildren) => {
const [opened, setOpened] = useState(false);
const value = useMemo(() => ({ opened, setOpened }), [opened]);
return <NavContext.Provider value={value}>{children}</NavContext.Provider>;
};
export function useNav() {
return useContext(NavContext);
}