import { useEffect, useState } from "react"; import { Wifi, WifiOff } from "lucide-react"; import { useSensorStore } from "../stores/sensorStore"; import { VoltageDisplay } from "./VoltageDisplay"; import { BatteryStatus } from "./BatteryStatus"; import { LoginIndicator } from "./LoginIndicator"; import TCKLogo from "../../../../logo/tck_logo.svg"; export function Header() { const [currentTime, setCurrentTime] = useState(new Date()); const { data } = useSensorStore(); const isOnline = data.communication.percentage > 0; const isLoggedIn = false; useEffect(() => { const timer = setInterval(() => { setCurrentTime(new Date()); }, 1000); return () => clearInterval(timer); }, []); const formatTime = (date: Date) => { return date.toLocaleTimeString("en-US", { hour: "2-digit", minute: "2-digit", second: "2-digit", hour12: false }); }; const formatDate = (date: Date) => { return date.toLocaleDateString("en-CA"); // YYYY-MM-DD format }; return (
{/* Logo */}
TCK RTU
{/* Time */}
Time: {formatTime(currentTime)}
{/* Date */}
Date: {formatDate(currentTime)}
{/* Station ID */}
Station: {data.station.id}
{/* Comm Status */}
{isOnline ? ( <> {data.communication.asu}ASU/{data.communication.dBm}dBm({data.communication.percentage}%) ) : ( <> OFFLINE )}
{/* Version */}
Ver: {data.station.version}
{/* Login Status */} {/* Solar Voltage */}
Solar: {data.voltage.solar.toFixed(1)}V
{/* Battery Voltage */}
Battery: {data.voltage.battery.toFixed(1)}V {data.voltage.batteryStatus}
); }