import noop from "lodash/noop"; import React from "react"; type MenuContextType = { isMenuOpen: boolean; setIsMenuOpen: React.Dispatch>; }; const MenuContext = React.createContext(null); type Props = { children?: React.ReactNode; }; export const MenuProvider: React.FC = ({ children }: Props) => { const [isMenuOpen, setIsMenuOpen] = React.useState(false); const memoized = React.useMemo( () => ({ isMenuOpen, setIsMenuOpen, }), [isMenuOpen, setIsMenuOpen] ); return ( {children} ); }; const useMenuContext: () => MenuContextType = () => { const value = React.useContext(MenuContext); return value ? value : { isMenuOpen: false, setIsMenuOpen: noop }; }; export default useMenuContext;