import { ChevronDown, ChevronUp, Flame, Focus, LocateFixed, MapPin, RefreshCw } from "lucide-react"; import { useTranslation } from "react-i18next"; import { LanguageToggle } from "@/components/layout/LanguageToggle"; import { ThemeToggle } from "@/components/layout/ThemeToggle"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; import type { FeedStatus } from "@/types/api"; interface AppHeaderProps { status: FeedStatus; statusLabel: string; lastUpdatedLabel: string; onRefresh: () => void; onFocusHeat: () => void; onLocateUser: () => void; onFocusMySignal: () => void; disableRefresh: boolean; disableHeat: boolean; disableLocate: boolean; disableMySignal: boolean; collapsed: boolean; onToggleCollapse: () => void; className?: string; } export function AppHeader({ status, statusLabel, lastUpdatedLabel, onRefresh, onFocusHeat, onLocateUser, onFocusMySignal, disableRefresh, disableHeat, disableLocate, disableMySignal, collapsed, onToggleCollapse, className, }: AppHeaderProps) { const { t } = useTranslation(); const isError = status === "error"; const statusBadge = ( {statusLabel} {!collapsed && ( {t("header.badge.updated", { time: lastUpdatedLabel })} )} ); return ( {t("app.name")} {!collapsed && {t("app.tagline")}} {collapsed ? : } {statusBadge} {!collapsed && ( )} ); }