| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import React, { type ComponentType } from 'react'
- /**
- * Lazy-loaded product menu components to avoid circular dependencies
- * (registry -> Layout -> ProjectLayout -> MobileMenuContent -> registry).
- * Sections without a dedicated product menu map to null.
- */
- export const MOBILE_PRODUCT_MENU_REGISTRY: Record<string, ComponentType | null> = {
- HOME: null,
- editor: React.lazy(() =>
- import('@/components/layouts/TableEditorLayout/TableEditorMenu').then((m) => ({
- default: m.TableEditorMenu,
- }))
- ),
- sql: React.lazy(() =>
- import('@/components/layouts/SQLEditorLayout/SQLEditorMenu').then((m) => ({
- default: m.SQLEditorMenu,
- }))
- ),
- database: React.lazy(() =>
- import('@/components/layouts/DatabaseLayout/DatabaseLayout').then((m) => ({
- default: m.DatabaseProductMenu,
- }))
- ),
- auth: React.lazy(() =>
- import('@/components/layouts/AuthLayout/AuthLayout').then((m) => ({
- default: m.AuthProductMenu,
- }))
- ),
- storage: React.lazy(() =>
- import('@/components/interfaces/Storage/StorageMenuV2').then((m) => ({
- default: m.StorageMenuV2,
- }))
- ),
- functions: React.lazy(() =>
- import('@/components/layouts/EdgeFunctionsLayout/EdgeFunctionsLayout').then((m) => ({
- default: m.EdgeFunctionsProductMenu,
- }))
- ),
- realtime: React.lazy(() =>
- import('@/components/layouts/RealtimeLayout/RealtimeLayout').then((m) => ({
- default: m.RealtimeProductMenu,
- }))
- ),
- advisors: React.lazy(() =>
- import('@/components/layouts/AdvisorsLayout/AdvisorsSidebarMenu').then((m) => ({
- default: m.AdvisorsSidebarMenu,
- }))
- ),
- observability: React.lazy(() =>
- import('@/components/layouts/ObservabilityLayout/ObservabilityMenu').then((m) => ({
- default: m.default,
- }))
- ),
- logs: React.lazy(() =>
- import('@/components/layouts/LogsLayout/LogsSidebarMenuV2').then((m) => ({
- default: m.LogsSidebarMenuV2,
- }))
- ),
- api: null,
- integrations: React.lazy(() =>
- import('@/components/layouts/Integrations/IntegrationsProductMenu').then((m) => ({
- default: m.IntegrationsProductMenu,
- }))
- ),
- settings: React.lazy(() =>
- import('@/components/layouts/ProjectSettingsLayout/SettingsLayout').then((m) => ({
- default: m.SettingsProductMenu,
- }))
- ),
- }
- export function getProductMenuComponent(sectionKey: string): ComponentType | null {
- return MOBILE_PRODUCT_MENU_REGISTRY[sectionKey] ?? null
- }
|