import React from "react"; export interface Progress { isActive: boolean; setActiveState: (isOpened: boolean) => void; } export interface SideMenu { isExpanded: boolean; setExpansionState: (state: boolean) => void; } export interface IAppLayoutContext { action: React.RefObject; header: React.RefObject; menu: SideMenu; progress: Progress; } export const AppLayoutContext = React.createContext( undefined ); export interface AppLayoutContextProviderProps { menu: SideMenu; } export const AppLayoutContextProvider: React.FC< AppLayoutContextProviderProps > = ({ children, menu }) => { const [isProgressActive, setProgressState] = React.useState(false); const actionAnchor = React.useRef(); const headerAnchor = React.useRef(); const value: IAppLayoutContext = { action: actionAnchor, header: headerAnchor, menu, progress: { isActive: isProgressActive, setActiveState: setProgressState } }; return ( {children} ); }; export default AppLayoutContext;