Default to PITR page when accessing db backups if project has pitr enabled (#19898)

This commit is contained in:
Joshen Lim authored and GitHub committed 2023-12-20 16:39:08 +07:00
1 parent 38bb1d9665
commit fe5e274697
2 files changed
+13 -4

No files matched your search

@@ -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<DatabaseLayoutProps>) =>
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<DatabaseLayoutProps>) =>
<ProjectLayout
product="Database"
productMenu={
<ProductMenu page={page} menu={generateDatabaseMenu(project, { pgNetExtensionExists })} />
<ProductMenu
page={page}
menu={generateDatabaseMenu(project, { pgNetExtensionExists, pitrEnabled })}
/>
}
isBlocking={false}
>
@@ -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: [],
},
]