feat(studio): land ProjectIntegrationsLayout shell + 4 leaves

Adds the TanStack shell at routes/project/$ref/integrations.tsx and
re-export leaves for index, $id, $id/$pageId, and $id/$pageId/$childId
(Path A — pages/... files retained per migration plan).
This commit is contained in:
Alaister Young committed 2026-05-11 13:59:47 +08:00
1 parent d85ffe50af
commit e449097918
7 files changed
+185 -5

No files matched your search

+5 -5
View File
@@ -83,7 +83,7 @@ These are the layout-only TanStack files. Most hold a single product layout comp
- [x] `routes/project/$ref/advisors.tsx` — AdvisorsLayout (reads `advisorsLayoutTitle` from leaf staticData). Honours `skipAdvisorsLayout: true` opt-out for the rules sub-shell, which provides its own AdvisorsLayout-less-DefaultLayout wrap. Scans whole match chain (same pattern as functions.tsx).
- [x] `routes/project/$ref/advisors/rules.tsx` — sub-shell that inlines the inner body of `AdvisorRulesLayout` (AdvisorsLayout + PageLayout with title/tabs/feature-preview badge), minus the outer DefaultLayout (already provided by the parent project shell). Sets `skipAdvisorsLayout: true` on its own staticData. **Delta vs plan:** the existing `AdvisorRulesLayout` component wraps in DefaultLayout + AdvisorsLayout internally, so reusing it as-is would double-wrap both. Inlined the inner part; the Next-side component is untouched.
- [x] `routes/project/$ref/settings.tsx` — SettingsLayout (reads `settingsLayoutTitle` from leaf staticData). Honours `skipSettingsLayout: true` for `settings/api` (redirect-only page). Adds a sub-shell at `routes/project/$ref/settings/api-keys.tsx` providing `ApiKeysLayout` for both api-keys leaves; `jwt/index` wraps in `JWTKeysLayout` inline since `jwt/legacy` doesn't share it.
- [ ] `routes/project/$ref/integrations.tsx` — ProjectIntegrationsLayout
- [x] `routes/project/$ref/integrations.tsx` — ProjectIntegrationsLayout (no staticData; all 4 leaves share identical layout). Layout is `withAuth(({ children }) => <ProjectLayout>{children}</ProjectLayout>)`, so the shell just wraps `<Outlet />` once.
- [x] `routes/project/$ref/sql.tsx` — EditorBaseLayout + SQLEditorLayout. Twin of editor.tsx; all four leaves share identical layout props so the shell hardcodes them (no `staticData` overrides). EditorBaseLayout wraps in ProjectLayoutWithAuth; SQLEditorLayout adds its own `withAuth` HOC but no extra ProjectLayout — same shape as the table editor (auth check runs twice but no double render).
- [x] `routes/project/$ref/editor.tsx` — EditorBaseLayout + TableEditorLayout. All three leaves share identical layout props so the shell hardcodes them (no `staticData` overrides). EditorBaseLayout wraps in `ProjectLayoutWithAuth` internally; TableEditorLayout's happy path is just a fragment + side-effect (banner) and only wraps in `ProjectLayoutWithAuth` on its no-permission branch — same as Next, no double-wrap in normal use.
@@ -291,10 +291,10 @@ These are the layout-only TanStack files. Most hold a single product layout comp
### Project shell — `/integrations/*`
- [ ] `routes/project/$ref/integrations/index.tsx` ← `pages/project/[ref]/integrations/index.tsx`
- [ ] `routes/project/$ref/integrations/$id/index.tsx` ← `pages/project/[ref]/integrations/[id]/index.tsx`
- [ ] `routes/project/$ref/integrations/$id/$pageId/index.tsx` ← `pages/project/[ref]/integrations/[id]/[pageId]/index.tsx`
- [ ] `routes/project/$ref/integrations/$id/$pageId/$childId/index.tsx` ← `pages/project/[ref]/integrations/[id]/[pageId]/[childId]/index.tsx`
- [x] `routes/project/$ref/integrations/index.tsx` ← `pages/project/[ref]/integrations/index.tsx`
- [x] `routes/project/$ref/integrations/$id/index.tsx` ← `pages/project/[ref]/integrations/[id]/index.tsx`
- [x] `routes/project/$ref/integrations/$id/$pageId/index.tsx` ← `pages/project/[ref]/integrations/[id]/[pageId]/index.tsx`
- [x] `routes/project/$ref/integrations/$id/$pageId/$childId/index.tsx` ← `pages/project/[ref]/integrations/[id]/[pageId]/[childId]/index.tsx`
### Project shell — `/sql/*`
+121
View File
@@ -50,6 +50,7 @@ import { Route as ProjectRefSettingsRouteImport } from './routes/project/$ref/se
import { Route as ProjectRefRealtimeRouteImport } from './routes/project/$ref/realtime'
import { Route as ProjectRefObservabilityRouteImport } from './routes/project/$ref/observability'
import { Route as ProjectRefLogsRouteImport } from './routes/project/$ref/logs'
import { Route as ProjectRefIntegrationsRouteImport } from './routes/project/$ref/integrations'
import { Route as ProjectRefFunctionsRouteImport } from './routes/project/$ref/functions'
import { Route as ProjectRefEditorRouteImport } from './routes/project/$ref/editor'
import { Route as ProjectRefDatabaseRouteImport } from './routes/project/$ref/database'
@@ -67,6 +68,7 @@ import { Route as AppAccountAuditRouteImport } from './routes/_app/account/audit
import { Route as ProjectRefSqlIndexRouteImport } from './routes/project/$ref/sql/index'
import { Route as ProjectRefObservabilityIndexRouteImport } from './routes/project/$ref/observability/index'
import { Route as ProjectRefLogsIndexRouteImport } from './routes/project/$ref/logs/index'
import { Route as ProjectRefIntegrationsIndexRouteImport } from './routes/project/$ref/integrations/index'
import { Route as ProjectRefFunctionsIndexRouteImport } from './routes/project/$ref/functions/index'
import { Route as ProjectRefEditorIndexRouteImport } from './routes/project/$ref/editor/index'
import { Route as ProjectRefBranchesIndexRouteImport } from './routes/project/$ref/branches/index'
@@ -180,6 +182,7 @@ import { Route as ProjectRefSettingsWebhooksIndexRouteImport } from './routes/pr
import { Route as ProjectRefSettingsJwtIndexRouteImport } from './routes/project/$ref/settings/jwt/index'
import { Route as ProjectRefSettingsApiKeysIndexRouteImport } from './routes/project/$ref/settings/api-keys/index'
import { Route as ProjectRefLogsExplorerIndexRouteImport } from './routes/project/$ref/logs/explorer/index'
import { Route as ProjectRefIntegrationsIdIndexRouteImport } from './routes/project/$ref/integrations/$id/index'
import { Route as ProjectRefFunctionsFunctionSlugIndexRouteImport } from './routes/project/$ref/functions/$functionSlug/index'
import { Route as ProjectRefDatabaseTriggersIndexRouteImport } from './routes/project/$ref/database/triggers/index'
import { Route as ProjectRefDatabaseTablesIndexRouteImport } from './routes/project/$ref/database/tables/index'
@@ -239,6 +242,7 @@ import { Route as ApiPlatformAuthRefMagiclinkRouteImport } from './routes/api/pl
import { Route as ApiPlatformAuthRefInviteRouteImport } from './routes/api/platform/auth/$ref/invite'
import { Route as AuthPartnersStripeProjectsLoginRouteImport } from './routes/_auth/partners/stripe/projects/login'
import { Route as AppOrgSlugWebhooksEndpointIdRouteImport } from './routes/_app/org/$slug/webhooks/$endpointId'
import { Route as ProjectRefIntegrationsIdPageIdIndexRouteImport } from './routes/project/$ref/integrations/$id/$pageId/index'
import { Route as ApiV1ProjectsRefFunctionsIndexRouteImport } from './routes/api/v1/projects/$ref/functions/index'
import { Route as ApiPlatformStorageRefBucketsIndexRouteImport } from './routes/api/platform/storage/$ref/buckets/index'
import { Route as ApiPlatformPropsProjectRefIndexRouteImport } from './routes/api/platform/props/project/$ref/index'
@@ -261,6 +265,7 @@ import { Route as ApiPlatformProjectsRefApiGraphqlRouteImport } from './routes/a
import { Route as ApiPlatformProjectsRefApiKeysTemporaryRouteImport } from './routes/api/platform/projects/$ref/api-keys/temporary'
import { Route as ApiPlatformProjectsRefAnalyticsLogDrainsRouteImport } from './routes/api/platform/projects/$ref/analytics/log-drains'
import { Route as ApiPlatformOrganizationsSlugBillingSubscriptionRouteImport } from './routes/api/platform/organizations/$slug/billing/subscription'
import { Route as ProjectRefIntegrationsIdPageIdChildIdIndexRouteImport } from './routes/project/$ref/integrations/$id/$pageId/$childId/index'
import { Route as ApiV1ProjectsRefFunctionsSlugIndexRouteImport } from './routes/api/v1/projects/$ref/functions/$slug/index'
import { Route as ApiPlatformStorageRefBucketsIdIndexRouteImport } from './routes/api/platform/storage/$ref/buckets/$id/index'
import { Route as ApiPlatformProjectsRefContentFoldersIndexRouteImport } from './routes/api/platform/projects/$ref/content/folders/index'
@@ -485,6 +490,11 @@ const ProjectRefLogsRoute = ProjectRefLogsRouteImport.update({
path: '/logs',
getParentRoute: () => ProjectRefRoute,
} as any)
const ProjectRefIntegrationsRoute = ProjectRefIntegrationsRouteImport.update({
id: '/integrations',
path: '/integrations',
getParentRoute: () => ProjectRefRoute,
} as any)
const ProjectRefFunctionsRoute = ProjectRefFunctionsRouteImport.update({
id: '/functions',
path: '/functions',
@@ -572,6 +582,12 @@ const ProjectRefLogsIndexRoute = ProjectRefLogsIndexRouteImport.update({
path: '/',
getParentRoute: () => ProjectRefLogsRoute,
} as any)
const ProjectRefIntegrationsIndexRoute =
ProjectRefIntegrationsIndexRouteImport.update({
id: '/',
path: '/',
getParentRoute: () => ProjectRefIntegrationsRoute,
} as any)
const ProjectRefFunctionsIndexRoute =
ProjectRefFunctionsIndexRouteImport.update({
id: '/',
@@ -1200,6 +1216,12 @@ const ProjectRefLogsExplorerIndexRoute =
path: '/explorer/',
getParentRoute: () => ProjectRefLogsRoute,
} as any)
const ProjectRefIntegrationsIdIndexRoute =
ProjectRefIntegrationsIdIndexRouteImport.update({
id: '/$id/',
path: '/$id/',
getParentRoute: () => ProjectRefIntegrationsRoute,
} as any)
const ProjectRefFunctionsFunctionSlugIndexRoute =
ProjectRefFunctionsFunctionSlugIndexRouteImport.update({
id: '/',
@@ -1550,6 +1572,12 @@ const AppOrgSlugWebhooksEndpointIdRoute =
path: '/$slug/webhooks/$endpointId',
getParentRoute: () => AppOrgRoute,
} as any)
const ProjectRefIntegrationsIdPageIdIndexRoute =
ProjectRefIntegrationsIdPageIdIndexRouteImport.update({
id: '/$id/$pageId/',
path: '/$id/$pageId/',
getParentRoute: () => ProjectRefIntegrationsRoute,
} as any)
const ApiV1ProjectsRefFunctionsIndexRoute =
ApiV1ProjectsRefFunctionsIndexRouteImport.update({
id: '/api/v1/projects/$ref/functions/',
@@ -1682,6 +1710,12 @@ const ApiPlatformOrganizationsSlugBillingSubscriptionRoute =
path: '/api/platform/organizations/$slug/billing/subscription',
getParentRoute: () => rootRouteImport,
} as any)
const ProjectRefIntegrationsIdPageIdChildIdIndexRoute =
ProjectRefIntegrationsIdPageIdChildIdIndexRouteImport.update({
id: '/$id/$pageId/$childId/',
path: '/$id/$pageId/$childId/',
getParentRoute: () => ProjectRefIntegrationsRoute,
} as any)
const ApiV1ProjectsRefFunctionsSlugIndexRoute =
ApiV1ProjectsRefFunctionsSlugIndexRouteImport.update({
id: '/api/v1/projects/$ref/functions/$slug/',
@@ -1830,6 +1864,7 @@ export interface FileRoutesByFullPath {
'/project/$ref/database': typeof ProjectRefDatabaseRouteWithChildren
'/project/$ref/editor': typeof ProjectRefEditorRouteWithChildren
'/project/$ref/functions': typeof ProjectRefFunctionsRouteWithChildren
'/project/$ref/integrations': typeof ProjectRefIntegrationsRouteWithChildren
'/project/$ref/logs': typeof ProjectRefLogsRouteWithChildren
'/project/$ref/observability': typeof ProjectRefObservabilityRouteWithChildren
'/project/$ref/realtime': typeof ProjectRefRealtimeRouteWithChildren
@@ -1945,6 +1980,7 @@ export interface FileRoutesByFullPath {
'/project/$ref/branches/': typeof ProjectRefBranchesIndexRoute
'/project/$ref/editor/': typeof ProjectRefEditorIndexRoute
'/project/$ref/functions/': typeof ProjectRefFunctionsIndexRoute
'/project/$ref/integrations/': typeof ProjectRefIntegrationsIndexRoute
'/project/$ref/logs/': typeof ProjectRefLogsIndexRoute
'/project/$ref/observability/': typeof ProjectRefObservabilityIndexRoute
'/project/$ref/sql/': typeof ProjectRefSqlIndexRoute
@@ -2007,6 +2043,7 @@ export interface FileRoutesByFullPath {
'/project/$ref/database/tables/': typeof ProjectRefDatabaseTablesIndexRoute
'/project/$ref/database/triggers/': typeof ProjectRefDatabaseTriggersIndexRoute
'/project/$ref/functions/$functionSlug/': typeof ProjectRefFunctionsFunctionSlugIndexRoute
'/project/$ref/integrations/$id/': typeof ProjectRefIntegrationsIdIndexRoute
'/project/$ref/logs/explorer/': typeof ProjectRefLogsExplorerIndexRoute
'/project/$ref/settings/api-keys/': typeof ProjectRefSettingsApiKeysIndexRoute
'/project/$ref/settings/jwt/': typeof ProjectRefSettingsJwtIndexRoute
@@ -2036,6 +2073,7 @@ export interface FileRoutesByFullPath {
'/api/platform/props/project/$ref/': typeof ApiPlatformPropsProjectRefIndexRoute
'/api/platform/storage/$ref/buckets/': typeof ApiPlatformStorageRefBucketsIndexRoute
'/api/v1/projects/$ref/functions/': typeof ApiV1ProjectsRefFunctionsIndexRoute
'/project/$ref/integrations/$id/$pageId/': typeof ProjectRefIntegrationsIdPageIdIndexRoute
'/api/platform/auth/$ref/users/$id/factors': typeof ApiPlatformAuthRefUsersIdFactorsRoute
'/api/platform/projects/$ref/analytics/endpoints/$name': typeof ApiPlatformProjectsRefAnalyticsEndpointsNameRoute
'/api/platform/projects/$ref/analytics/log-drains/$uuid': typeof ApiPlatformProjectsRefAnalyticsLogDrainsUuidRoute
@@ -2046,6 +2084,7 @@ export interface FileRoutesByFullPath {
'/api/platform/projects/$ref/content/folders/': typeof ApiPlatformProjectsRefContentFoldersIndexRoute
'/api/platform/storage/$ref/buckets/$id/': typeof ApiPlatformStorageRefBucketsIdIndexRoute
'/api/v1/projects/$ref/functions/$slug/': typeof ApiV1ProjectsRefFunctionsSlugIndexRoute
'/project/$ref/integrations/$id/$pageId/$childId/': typeof ProjectRefIntegrationsIdPageIdChildIdIndexRoute
'/api/platform/storage/$ref/buckets/$id/objects/download': typeof ApiPlatformStorageRefBucketsIdObjectsDownloadRoute
'/api/platform/storage/$ref/buckets/$id/objects/list': typeof ApiPlatformStorageRefBucketsIdObjectsListRoute
'/api/platform/storage/$ref/buckets/$id/objects/move': typeof ApiPlatformStorageRefBucketsIdObjectsMoveRoute
@@ -2203,6 +2242,7 @@ export interface FileRoutesByTo {
'/project/$ref/branches': typeof ProjectRefBranchesIndexRoute
'/project/$ref/editor': typeof ProjectRefEditorIndexRoute
'/project/$ref/functions': typeof ProjectRefFunctionsIndexRoute
'/project/$ref/integrations': typeof ProjectRefIntegrationsIndexRoute
'/project/$ref/logs': typeof ProjectRefLogsIndexRoute
'/project/$ref/observability': typeof ProjectRefObservabilityIndexRoute
'/project/$ref/sql': typeof ProjectRefSqlIndexRoute
@@ -2265,6 +2305,7 @@ export interface FileRoutesByTo {
'/project/$ref/database/tables': typeof ProjectRefDatabaseTablesIndexRoute
'/project/$ref/database/triggers': typeof ProjectRefDatabaseTriggersIndexRoute
'/project/$ref/functions/$functionSlug': typeof ProjectRefFunctionsFunctionSlugIndexRoute
'/project/$ref/integrations/$id': typeof ProjectRefIntegrationsIdIndexRoute
'/project/$ref/logs/explorer': typeof ProjectRefLogsExplorerIndexRoute
'/project/$ref/settings/api-keys': typeof ProjectRefSettingsApiKeysIndexRoute
'/project/$ref/settings/jwt': typeof ProjectRefSettingsJwtIndexRoute
@@ -2294,6 +2335,7 @@ export interface FileRoutesByTo {
'/api/platform/props/project/$ref': typeof ApiPlatformPropsProjectRefIndexRoute
'/api/platform/storage/$ref/buckets': typeof ApiPlatformStorageRefBucketsIndexRoute
'/api/v1/projects/$ref/functions': typeof ApiV1ProjectsRefFunctionsIndexRoute
'/project/$ref/integrations/$id/$pageId': typeof ProjectRefIntegrationsIdPageIdIndexRoute
'/api/platform/auth/$ref/users/$id/factors': typeof ApiPlatformAuthRefUsersIdFactorsRoute
'/api/platform/projects/$ref/analytics/endpoints/$name': typeof ApiPlatformProjectsRefAnalyticsEndpointsNameRoute
'/api/platform/projects/$ref/analytics/log-drains/$uuid': typeof ApiPlatformProjectsRefAnalyticsLogDrainsUuidRoute
@@ -2304,6 +2346,7 @@ export interface FileRoutesByTo {
'/api/platform/projects/$ref/content/folders': typeof ApiPlatformProjectsRefContentFoldersIndexRoute
'/api/platform/storage/$ref/buckets/$id': typeof ApiPlatformStorageRefBucketsIdIndexRoute
'/api/v1/projects/$ref/functions/$slug': typeof ApiV1ProjectsRefFunctionsSlugIndexRoute
'/project/$ref/integrations/$id/$pageId/$childId': typeof ProjectRefIntegrationsIdPageIdChildIdIndexRoute
'/api/platform/storage/$ref/buckets/$id/objects/download': typeof ApiPlatformStorageRefBucketsIdObjectsDownloadRoute
'/api/platform/storage/$ref/buckets/$id/objects/list': typeof ApiPlatformStorageRefBucketsIdObjectsListRoute
'/api/platform/storage/$ref/buckets/$id/objects/move': typeof ApiPlatformStorageRefBucketsIdObjectsMoveRoute
@@ -2360,6 +2403,7 @@ export interface FileRoutesById {
'/project/$ref/database': typeof ProjectRefDatabaseRouteWithChildren
'/project/$ref/editor': typeof ProjectRefEditorRouteWithChildren
'/project/$ref/functions': typeof ProjectRefFunctionsRouteWithChildren
'/project/$ref/integrations': typeof ProjectRefIntegrationsRouteWithChildren
'/project/$ref/logs': typeof ProjectRefLogsRouteWithChildren
'/project/$ref/observability': typeof ProjectRefObservabilityRouteWithChildren
'/project/$ref/realtime': typeof ProjectRefRealtimeRouteWithChildren
@@ -2475,6 +2519,7 @@ export interface FileRoutesById {
'/project/$ref/branches/': typeof ProjectRefBranchesIndexRoute
'/project/$ref/editor/': typeof ProjectRefEditorIndexRoute
'/project/$ref/functions/': typeof ProjectRefFunctionsIndexRoute
'/project/$ref/integrations/': typeof ProjectRefIntegrationsIndexRoute
'/project/$ref/logs/': typeof ProjectRefLogsIndexRoute
'/project/$ref/observability/': typeof ProjectRefObservabilityIndexRoute
'/project/$ref/sql/': typeof ProjectRefSqlIndexRoute
@@ -2537,6 +2582,7 @@ export interface FileRoutesById {
'/project/$ref/database/tables/': typeof ProjectRefDatabaseTablesIndexRoute
'/project/$ref/database/triggers/': typeof ProjectRefDatabaseTriggersIndexRoute
'/project/$ref/functions/$functionSlug/': typeof ProjectRefFunctionsFunctionSlugIndexRoute
'/project/$ref/integrations/$id/': typeof ProjectRefIntegrationsIdIndexRoute
'/project/$ref/logs/explorer/': typeof ProjectRefLogsExplorerIndexRoute
'/project/$ref/settings/api-keys/': typeof ProjectRefSettingsApiKeysIndexRoute
'/project/$ref/settings/jwt/': typeof ProjectRefSettingsJwtIndexRoute
@@ -2566,6 +2612,7 @@ export interface FileRoutesById {
'/api/platform/props/project/$ref/': typeof ApiPlatformPropsProjectRefIndexRoute
'/api/platform/storage/$ref/buckets/': typeof ApiPlatformStorageRefBucketsIndexRoute
'/api/v1/projects/$ref/functions/': typeof ApiV1ProjectsRefFunctionsIndexRoute
'/project/$ref/integrations/$id/$pageId/': typeof ProjectRefIntegrationsIdPageIdIndexRoute
'/api/platform/auth/$ref/users/$id/factors': typeof ApiPlatformAuthRefUsersIdFactorsRoute
'/api/platform/projects/$ref/analytics/endpoints/$name': typeof ApiPlatformProjectsRefAnalyticsEndpointsNameRoute
'/api/platform/projects/$ref/analytics/log-drains/$uuid': typeof ApiPlatformProjectsRefAnalyticsLogDrainsUuidRoute
@@ -2576,6 +2623,7 @@ export interface FileRoutesById {
'/api/platform/projects/$ref/content/folders/': typeof ApiPlatformProjectsRefContentFoldersIndexRoute
'/api/platform/storage/$ref/buckets/$id/': typeof ApiPlatformStorageRefBucketsIdIndexRoute
'/api/v1/projects/$ref/functions/$slug/': typeof ApiV1ProjectsRefFunctionsSlugIndexRoute
'/project/$ref/integrations/$id/$pageId/$childId/': typeof ProjectRefIntegrationsIdPageIdChildIdIndexRoute
'/api/platform/storage/$ref/buckets/$id/objects/download': typeof ApiPlatformStorageRefBucketsIdObjectsDownloadRoute
'/api/platform/storage/$ref/buckets/$id/objects/list': typeof ApiPlatformStorageRefBucketsIdObjectsListRoute
'/api/platform/storage/$ref/buckets/$id/objects/move': typeof ApiPlatformStorageRefBucketsIdObjectsMoveRoute
@@ -2631,6 +2679,7 @@ export interface FileRouteTypes {
| '/project/$ref/database'
| '/project/$ref/editor'
| '/project/$ref/functions'
| '/project/$ref/integrations'
| '/project/$ref/logs'
| '/project/$ref/observability'
| '/project/$ref/realtime'
@@ -2746,6 +2795,7 @@ export interface FileRouteTypes {
| '/project/$ref/branches/'
| '/project/$ref/editor/'
| '/project/$ref/functions/'
| '/project/$ref/integrations/'
| '/project/$ref/logs/'
| '/project/$ref/observability/'
| '/project/$ref/sql/'
@@ -2808,6 +2858,7 @@ export interface FileRouteTypes {
| '/project/$ref/database/tables/'
| '/project/$ref/database/triggers/'
| '/project/$ref/functions/$functionSlug/'
| '/project/$ref/integrations/$id/'
| '/project/$ref/logs/explorer/'
| '/project/$ref/settings/api-keys/'
| '/project/$ref/settings/jwt/'
@@ -2837,6 +2888,7 @@ export interface FileRouteTypes {
| '/api/platform/props/project/$ref/'
| '/api/platform/storage/$ref/buckets/'
| '/api/v1/projects/$ref/functions/'
| '/project/$ref/integrations/$id/$pageId/'
| '/api/platform/auth/$ref/users/$id/factors'
| '/api/platform/projects/$ref/analytics/endpoints/$name'
| '/api/platform/projects/$ref/analytics/log-drains/$uuid'
@@ -2847,6 +2899,7 @@ export interface FileRouteTypes {
| '/api/platform/projects/$ref/content/folders/'
| '/api/platform/storage/$ref/buckets/$id/'
| '/api/v1/projects/$ref/functions/$slug/'
| '/project/$ref/integrations/$id/$pageId/$childId/'
| '/api/platform/storage/$ref/buckets/$id/objects/download'
| '/api/platform/storage/$ref/buckets/$id/objects/list'
| '/api/platform/storage/$ref/buckets/$id/objects/move'
@@ -3004,6 +3057,7 @@ export interface FileRouteTypes {
| '/project/$ref/branches'
| '/project/$ref/editor'
| '/project/$ref/functions'
| '/project/$ref/integrations'
| '/project/$ref/logs'
| '/project/$ref/observability'
| '/project/$ref/sql'
@@ -3066,6 +3120,7 @@ export interface FileRouteTypes {
| '/project/$ref/database/tables'
| '/project/$ref/database/triggers'
| '/project/$ref/functions/$functionSlug'
| '/project/$ref/integrations/$id'
| '/project/$ref/logs/explorer'
| '/project/$ref/settings/api-keys'
| '/project/$ref/settings/jwt'
@@ -3095,6 +3150,7 @@ export interface FileRouteTypes {
| '/api/platform/props/project/$ref'
| '/api/platform/storage/$ref/buckets'
| '/api/v1/projects/$ref/functions'
| '/project/$ref/integrations/$id/$pageId'
| '/api/platform/auth/$ref/users/$id/factors'
| '/api/platform/projects/$ref/analytics/endpoints/$name'
| '/api/platform/projects/$ref/analytics/log-drains/$uuid'
@@ -3105,6 +3161,7 @@ export interface FileRouteTypes {
| '/api/platform/projects/$ref/content/folders'
| '/api/platform/storage/$ref/buckets/$id'
| '/api/v1/projects/$ref/functions/$slug'
| '/project/$ref/integrations/$id/$pageId/$childId'
| '/api/platform/storage/$ref/buckets/$id/objects/download'
| '/api/platform/storage/$ref/buckets/$id/objects/list'
| '/api/platform/storage/$ref/buckets/$id/objects/move'
@@ -3160,6 +3217,7 @@ export interface FileRouteTypes {
| '/project/$ref/database'
| '/project/$ref/editor'
| '/project/$ref/functions'
| '/project/$ref/integrations'
| '/project/$ref/logs'
| '/project/$ref/observability'
| '/project/$ref/realtime'
@@ -3275,6 +3333,7 @@ export interface FileRouteTypes {
| '/project/$ref/branches/'
| '/project/$ref/editor/'
| '/project/$ref/functions/'
| '/project/$ref/integrations/'
| '/project/$ref/logs/'
| '/project/$ref/observability/'
| '/project/$ref/sql/'
@@ -3337,6 +3396,7 @@ export interface FileRouteTypes {
| '/project/$ref/database/tables/'
| '/project/$ref/database/triggers/'
| '/project/$ref/functions/$functionSlug/'
| '/project/$ref/integrations/$id/'
| '/project/$ref/logs/explorer/'
| '/project/$ref/settings/api-keys/'
| '/project/$ref/settings/jwt/'
@@ -3366,6 +3426,7 @@ export interface FileRouteTypes {
| '/api/platform/props/project/$ref/'
| '/api/platform/storage/$ref/buckets/'
| '/api/v1/projects/$ref/functions/'
| '/project/$ref/integrations/$id/$pageId/'
| '/api/platform/auth/$ref/users/$id/factors'
| '/api/platform/projects/$ref/analytics/endpoints/$name'
| '/api/platform/projects/$ref/analytics/log-drains/$uuid'
@@ -3376,6 +3437,7 @@ export interface FileRouteTypes {
| '/api/platform/projects/$ref/content/folders/'
| '/api/platform/storage/$ref/buckets/$id/'
| '/api/v1/projects/$ref/functions/$slug/'
| '/project/$ref/integrations/$id/$pageId/$childId/'
| '/api/platform/storage/$ref/buckets/$id/objects/download'
| '/api/platform/storage/$ref/buckets/$id/objects/list'
| '/api/platform/storage/$ref/buckets/$id/objects/move'
@@ -3777,6 +3839,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof ProjectRefLogsRouteImport
parentRoute: typeof ProjectRefRoute
}
'/project/$ref/integrations': {
id: '/project/$ref/integrations'
path: '/integrations'
fullPath: '/project/$ref/integrations'
preLoaderRoute: typeof ProjectRefIntegrationsRouteImport
parentRoute: typeof ProjectRefRoute
}
'/project/$ref/functions': {
id: '/project/$ref/functions'
path: '/functions'
@@ -3896,6 +3965,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof ProjectRefLogsIndexRouteImport
parentRoute: typeof ProjectRefLogsRoute
}
'/project/$ref/integrations/': {
id: '/project/$ref/integrations/'
path: '/'
fullPath: '/project/$ref/integrations/'
preLoaderRoute: typeof ProjectRefIntegrationsIndexRouteImport
parentRoute: typeof ProjectRefIntegrationsRoute
}
'/project/$ref/functions/': {
id: '/project/$ref/functions/'
path: '/'
@@ -4687,6 +4763,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof ProjectRefLogsExplorerIndexRouteImport
parentRoute: typeof ProjectRefLogsRoute
}
'/project/$ref/integrations/$id/': {
id: '/project/$ref/integrations/$id/'
path: '/$id'
fullPath: '/project/$ref/integrations/$id/'
preLoaderRoute: typeof ProjectRefIntegrationsIdIndexRouteImport
parentRoute: typeof ProjectRefIntegrationsRoute
}
'/project/$ref/functions/$functionSlug/': {
id: '/project/$ref/functions/$functionSlug/'
path: '/'
@@ -5100,6 +5183,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof AppOrgSlugWebhooksEndpointIdRouteImport
parentRoute: typeof AppOrgRoute
}
'/project/$ref/integrations/$id/$pageId/': {
id: '/project/$ref/integrations/$id/$pageId/'
path: '/$id/$pageId'
fullPath: '/project/$ref/integrations/$id/$pageId/'
preLoaderRoute: typeof ProjectRefIntegrationsIdPageIdIndexRouteImport
parentRoute: typeof ProjectRefIntegrationsRoute
}
'/api/v1/projects/$ref/functions/': {
id: '/api/v1/projects/$ref/functions/'
path: '/api/v1/projects/$ref/functions'
@@ -5254,6 +5344,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof ApiPlatformOrganizationsSlugBillingSubscriptionRouteImport
parentRoute: typeof rootRouteImport
}
'/project/$ref/integrations/$id/$pageId/$childId/': {
id: '/project/$ref/integrations/$id/$pageId/$childId/'
path: '/$id/$pageId/$childId'
fullPath: '/project/$ref/integrations/$id/$pageId/$childId/'
preLoaderRoute: typeof ProjectRefIntegrationsIdPageIdChildIdIndexRouteImport
parentRoute: typeof ProjectRefIntegrationsRoute
}
'/api/v1/projects/$ref/functions/$slug/': {
id: '/api/v1/projects/$ref/functions/$slug/'
path: '/api/v1/projects/$ref/functions/$slug'
@@ -5705,6 +5802,28 @@ const ProjectRefFunctionsRouteChildren: ProjectRefFunctionsRouteChildren = {
const ProjectRefFunctionsRouteWithChildren =
ProjectRefFunctionsRoute._addFileChildren(ProjectRefFunctionsRouteChildren)
interface ProjectRefIntegrationsRouteChildren {
ProjectRefIntegrationsIndexRoute: typeof ProjectRefIntegrationsIndexRoute
ProjectRefIntegrationsIdIndexRoute: typeof ProjectRefIntegrationsIdIndexRoute
ProjectRefIntegrationsIdPageIdIndexRoute: typeof ProjectRefIntegrationsIdPageIdIndexRoute
ProjectRefIntegrationsIdPageIdChildIdIndexRoute: typeof ProjectRefIntegrationsIdPageIdChildIdIndexRoute
}
const ProjectRefIntegrationsRouteChildren: ProjectRefIntegrationsRouteChildren =
{
ProjectRefIntegrationsIndexRoute: ProjectRefIntegrationsIndexRoute,
ProjectRefIntegrationsIdIndexRoute: ProjectRefIntegrationsIdIndexRoute,
ProjectRefIntegrationsIdPageIdIndexRoute:
ProjectRefIntegrationsIdPageIdIndexRoute,
ProjectRefIntegrationsIdPageIdChildIdIndexRoute:
ProjectRefIntegrationsIdPageIdChildIdIndexRoute,
}
const ProjectRefIntegrationsRouteWithChildren =
ProjectRefIntegrationsRoute._addFileChildren(
ProjectRefIntegrationsRouteChildren,
)
interface ProjectRefLogsRouteChildren {
ProjectRefLogsAuthLogsRoute: typeof ProjectRefLogsAuthLogsRoute
ProjectRefLogsCronLogsRoute: typeof ProjectRefLogsCronLogsRoute
@@ -5915,6 +6034,7 @@ interface ProjectRefRouteChildren {
ProjectRefDatabaseRoute: typeof ProjectRefDatabaseRouteWithChildren
ProjectRefEditorRoute: typeof ProjectRefEditorRouteWithChildren
ProjectRefFunctionsRoute: typeof ProjectRefFunctionsRouteWithChildren
ProjectRefIntegrationsRoute: typeof ProjectRefIntegrationsRouteWithChildren
ProjectRefLogsRoute: typeof ProjectRefLogsRouteWithChildren
ProjectRefObservabilityRoute: typeof ProjectRefObservabilityRouteWithChildren
ProjectRefRealtimeRoute: typeof ProjectRefRealtimeRouteWithChildren
@@ -5931,6 +6051,7 @@ const ProjectRefRouteChildren: ProjectRefRouteChildren = {
ProjectRefDatabaseRoute: ProjectRefDatabaseRouteWithChildren,
ProjectRefEditorRoute: ProjectRefEditorRouteWithChildren,
ProjectRefFunctionsRoute: ProjectRefFunctionsRouteWithChildren,
ProjectRefIntegrationsRoute: ProjectRefIntegrationsRouteWithChildren,
ProjectRefLogsRoute: ProjectRefLogsRouteWithChildren,
ProjectRefObservabilityRoute: ProjectRefObservabilityRouteWithChildren,
ProjectRefRealtimeRoute: ProjectRefRealtimeRouteWithChildren,
@@ -0,0 +1,15 @@
import { createFileRoute, Outlet } from '@tanstack/react-router'
import { ProjectIntegrationsLayout } from '@/components/layouts/ProjectIntegrationsLayout'
export const Route = createFileRoute('/project/$ref/integrations')({
component: IntegrationsShell,
})
function IntegrationsShell() {
return (
<ProjectIntegrationsLayout>
<Outlet />
</ProjectIntegrationsLayout>
)
}
@@ -0,0 +1,11 @@
import { createFileRoute } from '@tanstack/react-router'
import IntegrationPage from '@/pages/project/[ref]/integrations/[id]/[pageId]/[childId]/index'
export const Route = createFileRoute('/project/$ref/integrations/$id/$pageId/$childId/')({
component: IntegrationChildIdRoute,
})
function IntegrationChildIdRoute() {
return <IntegrationPage dehydratedState={undefined} />
}
@@ -0,0 +1,11 @@
import { createFileRoute } from '@tanstack/react-router'
import IntegrationPage from '@/pages/project/[ref]/integrations/[id]/[pageId]/index'
export const Route = createFileRoute('/project/$ref/integrations/$id/$pageId/')({
component: IntegrationPageIdRoute,
})
function IntegrationPageIdRoute() {
return <IntegrationPage dehydratedState={undefined} />
}
@@ -0,0 +1,11 @@
import { createFileRoute } from '@tanstack/react-router'
import IntegrationPage from '@/pages/project/[ref]/integrations/[id]/index'
export const Route = createFileRoute('/project/$ref/integrations/$id/')({
component: IntegrationIdRoute,
})
function IntegrationIdRoute() {
return <IntegrationPage dehydratedState={undefined} />
}
@@ -0,0 +1,11 @@
import { createFileRoute } from '@tanstack/react-router'
import IntegrationsPage from '@/pages/project/[ref]/integrations/index'
export const Route = createFileRoute('/project/$ref/integrations/')({
component: IntegrationsIndexRoute,
})
function IntegrationsIndexRoute() {
return <IntegrationsPage dehydratedState={undefined} />
}