mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 08:03:30 +01:00
31 lines
630 B
TypeScript
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);
|
|
}
|