import classNames from 'classnames'; import type { CSSProperties, HTMLAttributes } from 'react'; import { forwardRef } from 'react'; import { createContext } from 'react'; import { create } from 'zustand'; import type { NavigationProps } from './navigation-utils'; export const NavigationDrawerContext = createContext( undefined ); type NavigationDrawerStore = { drawerOpen: boolean; setDrawerOpen: (isOpen: boolean) => void; }; export const useNavigationDrawer = create((set) => ({ drawerOpen: false, setDrawerOpen: (isOpen) => { set({ drawerOpen: isOpen }); }, })); export const BurgerIcon = ({ variant = 'burger', className, }: { variant?: 'burger' | 'close' } & HTMLAttributes) => ( ); export const NavigationDrawerTrigger = forwardRef< HTMLButtonElement, Pick >(({ theme }, ref) => { const { drawerOpen, setDrawerOpen } = useNavigationDrawer((state) => ({ drawerOpen: state.drawerOpen, setDrawerOpen: state.setDrawerOpen, })); return ( ); }); export const NavigationDrawerContent = ({ theme, children, style, }: { style?: CSSProperties } & Pick) => { return (
{children}
); };