'use client'; import { Box, Container, Chip, Tooltip } from '@mui/material'; import { MobileNav } from '../MobileNav/MobileNav'; import { TabBar } from '../TabBar/TabBar'; import { useMediaQuery } from '@/hooks/useMediaQuery'; import { ReactNode } from 'react'; import { useWebSocket } from '@/hooks/useWebSocket'; import { Wifi, WifiOff, People } from '@mui/icons-material'; interface AppShellProps { children: ReactNode; } export const AppShell = ({ children }: AppShellProps) => { const isMobile = useMediaQuery('(max-width: 768px)'); const isTablet = useMediaQuery('(max-width: 1024px)'); const { isConnected, presence } = useWebSocket(); return ( {!isMobile && } {/* Connection Status & Presence Indicator */} : } label={isConnected ? 'Live' : 'Offline'} size="small" color={isConnected ? 'success' : 'default'} sx={{ fontWeight: 600, boxShadow: 1, }} /> {isConnected && presence.count > 1 && ( } label={presence.count} size="small" color="primary" sx={{ fontWeight: 600, boxShadow: 1, }} /> )} {children} {isMobile && } ); };