This repository has no description
1.2 kB
45 lines
1import { AppShell } from '@mantine/core';
2import Navbar from '@/components/navigation/navbar/Navbar';
3import ComposerDrawer from '@/features/composer/components/composerDrawer/ComposerDrawer';
4import { useNavbarContext } from '@/providers/navbar';
5import { useMediaQuery } from '@mantine/hooks';
6import { usePathname } from 'next/navigation';
7
8interface Props {
9 children: React.ReactNode;
10}
11
12export default function AppLayout(props: Props) {
13 const { mobileOpened, desktopOpened } = useNavbarContext();
14 const pathname = usePathname();
15
16 const ROUTES_WITH_ASIDE = ['/url'];
17 const hasAside = ROUTES_WITH_ASIDE.some((prefix) =>
18 pathname.startsWith(prefix),
19 );
20 const asideWidth = hasAside ? 300 : 0;
21
22 return (
23 <AppShell
24 header={{ height: 0 }}
25 navbar={{
26 width: 300,
27 breakpoint: 'xs',
28 collapsed: { mobile: !mobileOpened, desktop: !desktopOpened },
29 }}
30 aside={{
31 width: asideWidth,
32 breakpoint: 'xl',
33 collapsed: { mobile: true },
34 }}
35 >
36 {/*<Header />*/}
37 <Navbar />
38
39 <AppShell.Main>
40 {props.children}
41 <ComposerDrawer />
42 </AppShell.Main>
43 </AppShell>
44 );
45}