| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import Link from 'next/link'
- import { Badge, NavMenu, NavMenuItem } from 'ui'
- import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled'
- import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject'
- type Props = {
- active: 'pitr' | 'scheduled' | 'rtnp'
- }
- function DatabaseBackupsNav({ active }: Props) {
- const { ref, cloud_provider } = useSelectedProjectQuery()?.data || {}
- const { databaseRestoreToNewProject } = useIsFeatureEnabled(['database:restore_to_new_project'])
- const navMenuItems = [
- {
- enabled: true,
- id: 'scheduled',
- label: 'Scheduled backups',
- href: `/project/${ref}/database/backups/scheduled`,
- },
- {
- enabled: true,
- id: 'pitr',
- label: 'Point in time',
- href: `/project/${ref}/database/backups/pitr`,
- },
- {
- enabled: databaseRestoreToNewProject && cloud_provider !== 'FLY',
- id: 'rtnp',
- label: (
- <div className="flex items-center gap-2">
- Restore to new project <Badge variant="warning">Beta</Badge>
- </div>
- ),
- href: `/project/${ref}/database/backups/restore-to-new-project`,
- },
- ] as const
- return (
- <NavMenu className="overflow-hidden overflow-x-auto">
- {navMenuItems.map(
- (item) =>
- item.enabled && (
- <NavMenuItem key={item.id} active={item.id === active}>
- <Link href={item.href}>{item.label}</Link>
- </NavMenuItem>
- )
- )}
- </NavMenu>
- )
- }
- export default DatabaseBackupsNav
|