import { useRouter } from 'next/router' import { PropsWithChildren } from 'react' import { useIsColumnLevelPrivilegesEnabled } from 'components/interfaces/App/FeaturePreview/FeaturePreviewContext' import { useIsETLPrivateAlpha } from 'components/interfaces/Database/Replication/useIsETLPrivateAlpha' import { ProductMenu } from 'components/ui/ProductMenu' import { useDatabaseExtensionsQuery } from 'data/database-extensions/database-extensions-query' import { useProjectAddonsQuery } from 'data/subscriptions/project-addons-query' import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { withAuth } from 'hooks/misc/withAuth' import { ProjectLayout } from '../ProjectLayout' import { generateDatabaseMenu } from './DatabaseMenu.utils' export interface DatabaseLayoutProps { title?: string } const DatabaseProductMenu = () => { const { data: project } = useSelectedProjectQuery() const router = useRouter() const page = router.pathname.split('/')[4] const { data } = useDatabaseExtensionsQuery({ projectRef: project?.ref, connectionString: project?.connectionString, }) const { data: addons } = useProjectAddonsQuery({ projectRef: project?.ref }) const pgNetExtensionExists = (data ?? []).find((ext) => ext.name === 'pg_net') !== undefined const pitrEnabled = addons?.selected_addons.find((addon) => addon.type === 'pitr') !== undefined const columnLevelPrivileges = useIsColumnLevelPrivilegesEnabled() const enablePgReplicate = useIsETLPrivateAlpha() const { databaseReplication: showPgReplicate, databaseRoles: showRoles, integrationsWrappers: showWrappers, } = useIsFeatureEnabled(['database:replication', 'database:roles', 'integrations:wrappers']) return ( <> ) } const DatabaseLayout = ({ children }: PropsWithChildren) => { return ( } isBlocking={false}> {children} ) } export default withAuth(DatabaseLayout)