Files
supabase/apps/studio/components/layouts/ProjectIntegrationsLayout/ProjectIntegrationsMenu.utils.tsx
T
Terry Sutton b6de81485c new Integrations page (#29671)
* Start new integrations page

* Move cronjobs into integrations

* Rearrange

* Remove duplicate

* Move around menu items
2024-10-22 09:39:36 -02:30

67 lines
1.7 KiB
TypeScript

import type { ProductMenuGroup } from 'components/ui/ProductMenu/ProductMenu.types'
import type { Project } from 'data/projects/project-detail-query'
export const generateProjectIntegrationsMenu = (
project?: Project,
flags?: {
pgNetExtensionExists: boolean
cronUiEnabled: boolean
graphqlExtensionExists: boolean
}
): ProductMenuGroup[] => {
const ref = project?.ref ?? 'default'
const { pgNetExtensionExists, cronUiEnabled, graphqlExtensionExists } = flags || {}
return [
{
title: 'Manage',
items: [
{
name: 'Wrappers',
key: 'wrappers',
url: `/project/${ref}/integrations/wrappers`,
items: [],
},
...(!!pgNetExtensionExists
? [
{
name: 'Webhooks',
key: 'hooks',
url: `/project/${ref}/integrations/hooks`,
items: [],
},
]
: []),
...(!!cronUiEnabled
? [
{
name: 'Cron Jobs',
key: 'cron-jobs',
url: `/project/${ref}/integrations/cron-jobs`,
items: [],
},
]
: []),
...(!!graphqlExtensionExists
? [
{
name: 'GraphiQL',
key: 'graphiql',
url: `/project/${ref}/integrations/graphiql`,
items: [],
},
]
: []),
{
name: 'Vault',
key: 'vault',
url: `/project/${ref}/integrations/vault/secrets`,
items: [],
label: 'BETA',
},
],
},
]
}