-
+
{title}
+ {showExplorerCTA && (
+
+ )}
{children}
)
}
-
-export default ProductMenuBar
diff --git a/apps/studio/components/layouts/ProjectLayout/index.test.tsx b/apps/studio/components/layouts/ProjectLayout/index.test.tsx
index bfd02e291fe..d7bd6257232 100644
--- a/apps/studio/components/layouts/ProjectLayout/index.test.tsx
+++ b/apps/studio/components/layouts/ProjectLayout/index.test.tsx
@@ -138,7 +138,7 @@ vi.mock('./PausedState/ProjectPausedState', () => ({ ProjectPausedState: () => n
vi.mock('./PauseFailedState', () => ({ PauseFailedState: () => null }))
vi.mock('./PausingState', () => ({ PausingState: () => null }))
vi.mock('./ProductMenuBar', () => ({
- default: ({ children }: { children: ReactNode }) => <>{children}>,
+ ProductMenuBar: ({ children }: { children: ReactNode }) => <>{children}>,
}))
vi.mock('./ResizingState', () => ({ ResizingState: () => null }))
vi.mock('./RestartingState', () => ({ default: () => null }))
diff --git a/apps/studio/components/layouts/ProjectLayout/index.tsx b/apps/studio/components/layouts/ProjectLayout/index.tsx
index 21e7aad58b3..d9d487962d3 100644
--- a/apps/studio/components/layouts/ProjectLayout/index.tsx
+++ b/apps/studio/components/layouts/ProjectLayout/index.tsx
@@ -27,7 +27,7 @@ import {
import { useEditorType } from '../editors/EditorsLayout.hooks'
import { useMainScrollContainer, useSetMainScrollContainer } from '../MainScrollContainerContext'
import { useMobileSheet } from '../Navigation/NavigationBar/MobileSheetContext'
-import ProductMenuBar from '../Navigation/ProductMenuBar'
+import { ProductMenuBar } from '../Navigation/ProductMenuBar'
import BuildingState from './BuildingState'
import ConnectingState from './ConnectingState'
import { getSectionKeyFromPathname, MobileMenuContent } from './LayoutHeader/MobileMenuContent'
diff --git a/apps/studio/pages/project/[ref]/explorer/index.tsx b/apps/studio/pages/project/[ref]/explorer/index.tsx
new file mode 100644
index 00000000000..82ae81843a3
--- /dev/null
+++ b/apps/studio/pages/project/[ref]/explorer/index.tsx
@@ -0,0 +1,16 @@
+import { ExplorerPage } from '@/components/interfaces/Explorer/ExplorerPage'
+import { DefaultLayout } from '@/components/layouts/DefaultLayout'
+import { ExplorerLayout } from '@/components/layouts/ExplorerLayout/ExplorerLayout'
+import type { NextPageWithLayout } from '@/types'
+
+const ProjectExplorerPage: NextPageWithLayout = () => {
+ return
+}
+
+ProjectExplorerPage.getLayout = (page) => (
+
+ {page}
+
+)
+
+export default ProjectExplorerPage
diff --git a/apps/studio/routeTree.gen.ts b/apps/studio/routeTree.gen.ts
index 3e6b5c721d8..e7f21b42556 100644
--- a/apps/studio/routeTree.gen.ts
+++ b/apps/studio/routeTree.gen.ts
@@ -63,6 +63,7 @@ import { Route as ProjectRefMergeRouteImport } from './routes/project/$ref/merge
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 ProjectRefExplorerRouteImport } from './routes/project/$ref/explorer'
import { Route as ProjectRefEditorRouteImport } from './routes/project/$ref/editor'
import { Route as ProjectRefDatabaseRouteImport } from './routes/project/$ref/database'
import { Route as ProjectRefBranchesRouteImport } from './routes/project/$ref/branches'
@@ -588,6 +589,11 @@ const ProjectRefFunctionsRoute = ProjectRefFunctionsRouteImport.update({
path: '/functions',
getParentRoute: () => ProjectRefRoute,
} as any)
+const ProjectRefExplorerRoute = ProjectRefExplorerRouteImport.update({
+ id: '/explorer',
+ path: '/explorer',
+ getParentRoute: () => ProjectRefRoute,
+} as any)
const ProjectRefEditorRoute = ProjectRefEditorRouteImport.update({
id: '/editor',
path: '/editor',
@@ -2085,6 +2091,7 @@ export interface FileRoutesByFullPath {
'/project/$ref/branches': typeof ProjectRefBranchesRouteWithChildren
'/project/$ref/database': typeof ProjectRefDatabaseRouteWithChildren
'/project/$ref/editor': typeof ProjectRefEditorRouteWithChildren
+ '/project/$ref/explorer': typeof ProjectRefExplorerRoute
'/project/$ref/functions': typeof ProjectRefFunctionsRouteWithChildren
'/project/$ref/integrations': typeof ProjectRefIntegrationsRouteWithChildren
'/project/$ref/logs': typeof ProjectRefLogsRouteWithChildren
@@ -2387,6 +2394,7 @@ export interface FileRoutesByTo {
'/project/$ref/advisors': typeof ProjectRefAdvisorsRouteWithChildren
'/project/$ref/auth': typeof ProjectRefAuthRouteWithChildren
'/project/$ref/database': typeof ProjectRefDatabaseRouteWithChildren
+ '/project/$ref/explorer': typeof ProjectRefExplorerRoute
'/project/$ref/merge': typeof ProjectRefMergeRoute
'/project/$ref/realtime': typeof ProjectRefRealtimeRouteWithChildren
'/project/$ref/settings': typeof ProjectRefSettingsRouteWithChildren
@@ -2688,6 +2696,7 @@ export interface FileRoutesById {
'/project/$ref/branches': typeof ProjectRefBranchesRouteWithChildren
'/project/$ref/database': typeof ProjectRefDatabaseRouteWithChildren
'/project/$ref/editor': typeof ProjectRefEditorRouteWithChildren
+ '/project/$ref/explorer': typeof ProjectRefExplorerRoute
'/project/$ref/functions': typeof ProjectRefFunctionsRouteWithChildren
'/project/$ref/integrations': typeof ProjectRefIntegrationsRouteWithChildren
'/project/$ref/logs': typeof ProjectRefLogsRouteWithChildren
@@ -2996,6 +3005,7 @@ export interface FileRouteTypes {
| '/project/$ref/branches'
| '/project/$ref/database'
| '/project/$ref/editor'
+ | '/project/$ref/explorer'
| '/project/$ref/functions'
| '/project/$ref/integrations'
| '/project/$ref/logs'
@@ -3298,6 +3308,7 @@ export interface FileRouteTypes {
| '/project/$ref/advisors'
| '/project/$ref/auth'
| '/project/$ref/database'
+ | '/project/$ref/explorer'
| '/project/$ref/merge'
| '/project/$ref/realtime'
| '/project/$ref/settings'
@@ -3598,6 +3609,7 @@ export interface FileRouteTypes {
| '/project/$ref/branches'
| '/project/$ref/database'
| '/project/$ref/editor'
+ | '/project/$ref/explorer'
| '/project/$ref/functions'
| '/project/$ref/integrations'
| '/project/$ref/logs'
@@ -4350,6 +4362,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof ProjectRefFunctionsRouteImport
parentRoute: typeof ProjectRefRoute
}
+ '/project/$ref/explorer': {
+ id: '/project/$ref/explorer'
+ path: '/explorer'
+ fullPath: '/project/$ref/explorer'
+ preLoaderRoute: typeof ProjectRefExplorerRouteImport
+ parentRoute: typeof ProjectRefRoute
+ }
'/project/$ref/editor': {
id: '/project/$ref/editor'
path: '/editor'
@@ -6716,6 +6735,7 @@ interface ProjectRefRouteChildren {
ProjectRefBranchesRoute: typeof ProjectRefBranchesRouteWithChildren
ProjectRefDatabaseRoute: typeof ProjectRefDatabaseRouteWithChildren
ProjectRefEditorRoute: typeof ProjectRefEditorRouteWithChildren
+ ProjectRefExplorerRoute: typeof ProjectRefExplorerRoute
ProjectRefFunctionsRoute: typeof ProjectRefFunctionsRouteWithChildren
ProjectRefIntegrationsRoute: typeof ProjectRefIntegrationsRouteWithChildren
ProjectRefLogsRoute: typeof ProjectRefLogsRouteWithChildren
@@ -6735,6 +6755,7 @@ const ProjectRefRouteChildren: ProjectRefRouteChildren = {
ProjectRefBranchesRoute: ProjectRefBranchesRouteWithChildren,
ProjectRefDatabaseRoute: ProjectRefDatabaseRouteWithChildren,
ProjectRefEditorRoute: ProjectRefEditorRouteWithChildren,
+ ProjectRefExplorerRoute: ProjectRefExplorerRoute,
ProjectRefFunctionsRoute: ProjectRefFunctionsRouteWithChildren,
ProjectRefIntegrationsRoute: ProjectRefIntegrationsRouteWithChildren,
ProjectRefLogsRoute: ProjectRefLogsRouteWithChildren,
diff --git a/apps/studio/routes/project/$ref/explorer.tsx b/apps/studio/routes/project/$ref/explorer.tsx
new file mode 100644
index 00000000000..a67032bc417
--- /dev/null
+++ b/apps/studio/routes/project/$ref/explorer.tsx
@@ -0,0 +1,16 @@
+import { createFileRoute } from '@tanstack/react-router'
+
+import { ExplorerPage } from '@/components/interfaces/Explorer/ExplorerPage'
+import { ExplorerLayout } from '@/components/layouts/ExplorerLayout/ExplorerLayout'
+
+export const Route = createFileRoute('/project/$ref/explorer')({
+ component: ProjectExplorerRoute,
+})
+
+function ProjectExplorerRoute() {
+ return (
+
+
+
+ )
+}