'use client'; import type { DashboardGuild, SessionUser } from '@nexumi/shared'; import { Menu } from 'lucide-react'; import { useState, type ReactNode } from 'react'; import { DashboardCommandPalette } from '@/components/layout/dashboard-command-palette'; import { HashScroll } from '@/components/layout/field-anchor'; import { ServerSwitcher } from '@/components/layout/server-switcher'; import { Sidebar, SidebarNav } from '@/components/layout/sidebar'; import { UserMenu } from '@/components/layout/user-menu'; import { Button } from '@/components/ui/button'; import { Sheet, SheetContent, SheetTitle, SheetTrigger } from '@/components/ui/sheet'; import { useTranslations } from '@/components/locale-provider'; interface DashboardShellProps { guildId: string; currentGuild: DashboardGuild; otherGuilds: DashboardGuild[]; user: SessionUser; showOwnerLink?: boolean; /** True when an Owner-panel user opened a guild they do not manage on Discord. */ ownerBypass?: boolean; children: ReactNode; } export function DashboardShell({ guildId, currentGuild, otherGuilds, user, showOwnerLink = false, ownerBypass = false, children }: DashboardShellProps) { const t = useTranslations(); const [mobileOpen, setMobileOpen] = useState(false); return (
{t('nav.dashboard')} setMobileOpen(false)} />
{ownerBypass ? (

{t('dashboard.ownerBypass.title')}

{t('dashboard.ownerBypass.description')}

{t('dashboard.ownerBypass.backToOwner')}
) : null} {children}
); }