import { ReactNode, MouseEventHandler, Dispatch, SetStateAction } from 'react'; import { HeaderProps } from '../header'; import { SidebarProps, DrawerStates } from '../sidebar'; import createClasses from './styles'; export interface LayoutProps { /** * Props which will be supplied to the navigation sidebar component. */ sidebarProps: Omit; /** * Props which will be supplied to the header component. */ headerProps: Omit; /** * Content of the page. */ children: ReactNode; /** * Component to display in the info drawer. * @deprecated */ infoDrawerContent?: ReactNode; /** * Initial state of the left sidebar, used for disabling state changes. */ initLeftState?: DrawerStates; /** * If true, then the sidebars wont change according to screen size. */ disableSizeChanges?: boolean; /** * Default classes overrides. */ classes?: Partial>; /** * If true, the client is running inside CP's infinity portal and header and logo will not be visible. */ hideHeader?: boolean; } export interface LayoutContextProps { /** @deprecated */ setInfoDrawerContent?: Dispatch>; /** @deprecated */ infoDrawerContent?: LayoutProps['infoDrawerContent']; /** @deprecated */ rightDrawerOpenState?: DrawerStates; leftDrawerOpenState: DrawerStates; handleDrawerStateChange: (newState: DrawerStates) => MouseEventHandler; }