DatabaseLayout.tsx40 lines · main
1import { useRouter } from 'next/router'
2import type { PropsWithChildren } from 'react'
3
4import { ProjectLayout } from '../ProjectLayout'
5import { useGenerateDatabaseMenu } from './DatabaseMenu.utils'
6import { ProductMenu } from '@/components/ui/ProductMenu'
7import { ProductMenuShortcuts } from '@/components/ui/ProductMenu/ProductMenuShortcuts'
8import { withAuth } from '@/hooks/misc/withAuth'
9
10export interface DatabaseLayoutProps {
11 title: string
12}
13
14export const DatabaseProductMenu = () => {
15 const router = useRouter()
16 const page = router.pathname.split('/')[4]
17 const menu = useGenerateDatabaseMenu()
18
19 return <ProductMenu page={page} menu={menu} />
20}
21
22const DatabaseLayout = ({ children, title }: PropsWithChildren<DatabaseLayoutProps>) => {
23 const router = useRouter()
24 const page = router.pathname.split('/')[4]
25 const menu = useGenerateDatabaseMenu()
26
27 return (
28 <ProjectLayout
29 product="Database"
30 browserTitle={{ section: title }}
31 productMenu={<ProductMenu page={page} menu={menu} />}
32 isBlocking={false}
33 >
34 <ProductMenuShortcuts menu={menu} />
35 {children}
36 </ProjectLayout>
37 )
38}
39
40export default withAuth(DatabaseLayout)