DatabaseLayout.tsx 1.2 KB

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