import React, { createContext, useContext, useState, useEffect } from 'react' import { useLocation } from 'react-router-dom' interface LayoutContextState { selectedSideMenuKeys: string[] setSelectedSideMenuKeys: React.Dispatch> } const LayoutContext = createContext({ selectedSideMenuKeys: [], setSelectedSideMenuKeys: () => {}, }) const LayoutProvider: React.FC = (props) => { const [selectedSideMenuKeys, setSelectedSideMenuKeys] = useState< LayoutContextState['selectedSideMenuKeys'] >([]) const location = useLocation() useEffect(() => { if (location.pathname === '/') { setSelectedSideMenuKeys([]) } }, [location.pathname]) return ( {props.children} ) } export const useLayout = () => useContext(LayoutContext) export default LayoutProvider