'use client'; import { useState, type ReactNode } from 'react'; import { cn } from '@/lib/utils'; import { MobileLayoutProvider } from './mobile-layout-provider'; import { MobileTopbar } from './mobile-topbar'; import { MobileBottomTabs } from './mobile-bottom-tabs'; import { MoreSheet } from './more-sheet'; import { MobileSearchOverlay } from '@/components/search/mobile-search-overlay'; /** * Mobile shell: fixed compact topbar + scrollable content + fixed bottom tab * bar. Renders only when CSS reveals it (data-shell="mobile") - both shells * are in the DOM, see src/app/globals.css. The bottom tabs and More sheet * derive the active port slug from the URL themselves, so this layout takes * no portSlug prop. */ export function MobileLayout({ children }: { children: ReactNode }) { const [moreOpen, setMoreOpen] = useState(false); const [searchOpen, setSearchOpen] = useState(false); return (