1import { useEffect, useState } from "preact/hooks";23import { getOfflineBadgeLabel } from "@/lib/site/network.ts";45export default function OfflineBadge() {6 const [isOnline, setIsOnline] = useState(true);78 useEffect(() => {9 const sync = () => setIsOnline(navigator.onLine);10 sync();11 addEventListener("online", sync);12 addEventListener("offline", sync);13 return () => {14 removeEventListener("online", sync);15 removeEventListener("offline", sync);16 };17 }, []);1819 const label = getOfflineBadgeLabel(isOnline);20 if (!label) return null;2122 return <span class="shikaku-home__offline-badge">{label}</span>;23}