aboutsummaryrefslogtreecommitdiff
path: root/src/app/(main)/admin/AdminLayout.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/(main)/admin/AdminLayout.tsx')
-rw-r--r--src/app/(main)/admin/AdminLayout.tsx33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/app/(main)/admin/AdminLayout.tsx b/src/app/(main)/admin/AdminLayout.tsx
new file mode 100644
index 0000000..3c8fa20
--- /dev/null
+++ b/src/app/(main)/admin/AdminLayout.tsx
@@ -0,0 +1,33 @@
+'use client';
+import { Column, Grid } from '@umami/react-zen';
+import type { ReactNode } from 'react';
+import { PageBody } from '@/components/common/PageBody';
+import { useLoginQuery } from '@/components/hooks';
+import { AdminNav } from './AdminNav';
+
+export function AdminLayout({ children }: { children: ReactNode }) {
+ const { user } = useLoginQuery();
+
+ if (!user.isAdmin || process.env.cloudMode) {
+ return null;
+ }
+
+ return (
+ <Grid columns={{ xs: '1fr', lg: 'auto 1fr' }} width="100%" height="100%">
+ <Column
+ display={{ xs: 'none', lg: 'flex' }}
+ width="240px"
+ height="100%"
+ border="right"
+ backgroundColor
+ marginRight="2"
+ padding="3"
+ >
+ <AdminNav />
+ </Column>
+ <Column gap="6" margin="2">
+ <PageBody>{children}</PageBody>
+ </Column>
+ </Grid>
+ );
+}