import classNames from 'classnames' import { Suspense } from 'react' import { isMobile } from 'react-device-detect' import { useLocation } from 'react-router-dom' import AccountDetails from 'components/Account/AccountDetails' import Background from 'components/Background' import Footer from 'components/Footer' import DesktopHeader from 'components/Header/DesktopHeader' import ModalsContainer from 'components/Modals/ModalsContainer' import PageMetadata from 'components/PageMetadata' import Toaster from 'components/Toaster' import { DEFAULT_SETTINGS } from 'constants/defaultSettings' import { LocalStorageKeys } from 'constants/localStorageKeys' import useAccountId from 'hooks/useAccountId' import useLocalStorage from 'hooks/useLocalStorage' import useStore from 'store' interface Props { focusComponent: FocusComponent | null children: React.ReactNode fullWidth: boolean } function PageContainer(props: Props) { if (isMobile) return props.children if (!props.focusComponent) return (
{props.children}
) return (
{props.focusComponent.component}
) } export default function Layout({ children }: { children: React.ReactNode }) { const location = useLocation() const focusComponent = useStore((s) => s.focusComponent) const [reduceMotion] = useLocalStorage( LocalStorageKeys.REDUCE_MOTION, DEFAULT_SETTINGS.reduceMotion, ) const accountDetailsExpanded = useStore((s) => s.accountDetailsExpanded) const isFullWidth = location.pathname.includes('trade') || location.pathname === '/' || location.pathname.includes('perps') const accountId = useAccountId() return ( <>
{children}