import { useState } from "react"; interface Props { total: number; fishing: number; transit: number; pairLinks: number; alarms: number; clock: string; adminMode?: boolean; onLogoClick?: () => void; userName?: string; onLogout?: () => void; theme?: "dark" | "light"; onToggleTheme?: () => void; isSidebarOpen?: boolean; onMenuToggle?: () => void; } function StatChips({ total, fishing, transit, pairLinks, alarms }: Pick) { return ( <>
{total}
조업 {fishing}
항해 {transit}
쌍연결 {pairLinks}
경고 {alarms}
); } export function Topbar({ total, fishing, transit, pairLinks, alarms, clock, adminMode, onLogoClick, userName, onLogout, theme, onToggleTheme, isSidebarOpen, onMenuToggle }: Props) { const [isStatsOpen, setIsStatsOpen] = useState(false); return (
{/* 햄버거 메뉴 (모바일) */} {onMenuToggle && ( )} {/* 로고 */}
WING 조업감시·선단연관 {adminMode ? (ADMIN) : null}
{/* 데스크톱: 인라인 통계 */}
{/* 항상 표시: 시계 + 테마 + 사용자 */}
{clock} {onToggleTheme && ( )} {userName && (
{userName} {onLogout && ( )}
)}
{/* 모바일 통계 바 (펼침 시) — 레이아웃 흐름에 포함, 지도 영역 밀어내기 */} {isStatsOpen && (
)} {/* 모바일 통계 토글 탭 — topbar 하단 우측에 걸침 */}
); }