diff --git a/apps/studio/components/layouts/DatabaseLayout/DatabaseLayout.tsx b/apps/studio/components/layouts/DatabaseLayout/DatabaseLayout.tsx index 113e0b90763..8c905a3aea8 100644 --- a/apps/studio/components/layouts/DatabaseLayout/DatabaseLayout.tsx +++ b/apps/studio/components/layouts/DatabaseLayout/DatabaseLayout.tsx @@ -7,6 +7,7 @@ import { useDatabaseExtensionsQuery } from 'data/database-extensions/database-ex import { useSelectedProject, useStore, withAuth } from 'hooks' import ProjectLayout from '../' import { generateDatabaseMenu } from './DatabaseMenu.utils' +import { useProjectAddonsQuery } from 'data/subscriptions/project-addons-query' export interface DatabaseLayoutProps { title?: string @@ -23,9 +24,12 @@ const DatabaseLayout = ({ children }: PropsWithChildren) => projectRef: project?.ref, connectionString: project?.connectionString, }) + const { data: addons } = useProjectAddonsQuery({ projectRef: project?.ref }) + const vaultExtension = (data ?? []).find((ext) => ext.name === 'supabase_vault') const isVaultEnabled = vaultExtension !== undefined && vaultExtension.installed_version !== null const pgNetExtensionExists = (data ?? []).find((ext) => ext.name === 'pg_net') !== undefined + const pitrEnabled = addons?.selected_addons.find((addon) => addon.type === 'pitr') !== undefined useEffect(() => { if (isVaultEnabled) { @@ -37,7 +41,10 @@ const DatabaseLayout = ({ children }: PropsWithChildren) => + } isBlocking={false} > diff --git a/apps/studio/components/layouts/DatabaseLayout/DatabaseMenu.utils.ts b/apps/studio/components/layouts/DatabaseLayout/DatabaseMenu.utils.ts index 2815632c18f..577a159ad6a 100644 --- a/apps/studio/components/layouts/DatabaseLayout/DatabaseMenu.utils.ts +++ b/apps/studio/components/layouts/DatabaseLayout/DatabaseMenu.utils.ts @@ -4,10 +4,10 @@ import { IS_PLATFORM } from 'lib/constants' export const generateDatabaseMenu = ( project?: Project, - flags?: { pgNetExtensionExists: boolean } + flags?: { pgNetExtensionExists: boolean; pitrEnabled: boolean } ): ProductMenuGroup[] => { const ref = project?.ref ?? 'default' - const { pgNetExtensionExists } = flags || {} + const { pgNetExtensionExists, pitrEnabled } = flags || {} return [ { @@ -66,7 +66,9 @@ export const generateDatabaseMenu = ( { name: 'Backups', key: 'backups', - url: `/project/${ref}/database/backups/scheduled`, + url: pitrEnabled + ? `/project/${ref}/database/backups/pitr` + : `/project/${ref}/database/backups/scheduled`, items: [], }, ]