import { PushNotificationConfig } from '@/hooks/usePushNotifications'; import { LayoutContent } from './Content'; import { Footer } from './Footer'; import { Header, HeaderNotification, HeaderProfile, HeaderSpacer, LocaleButton, ResponsiveSection } from './Header'; import { NavMenu } from './NavMenu'; import { Navigation } from './Navigation'; import { withLayoutProvider } from './Provider'; import { ThemeToggler } from './ThemeToggler'; import { LayoutWrapper } from './Wrapper'; import { Breadcrumbs } from '@/components/@extended'; import { useBreadcrumbs } from '@/components/Layout/MenuProvider'; import { ThemeColor } from '@/components/Layout/ThemeColor'; import { ErrorProps, LoadingIndicator } from 'ra-ui-materialui'; import { Outlet } from 'react-router-dom'; import { FcmForegroundListener } from '@/components/FcmForegroundListener'; type ILayoutProps = React.PropsWithChildren<{ name: string; version: string; copy?: string; error?: React.ComponentType; enableThemeToggler: boolean; enableNotification: boolean; enableLocaleSwitcher: boolean; pushNotifications?: PushNotificationConfig; }>; const Layout = withLayoutProvider(function Layout(props: ILayoutProps) { const { name, version, enableThemeToggler, enableNotification, enableLocaleSwitcher, pushNotifications } = props; const { isLoading, navigation, breadcrumbs } = useBreadcrumbs(); return (
{enableLocaleSwitcher ? : null} {enableThemeToggler ? : null} {enableNotification ? : null}
{!isLoading && ( )} {props.children}