"use client"; /** * Live wall kiosk controls + reconnect banner (server-26#234). State lives in * lib/useKiosk.ts; this file is presentation only. */ import { useEffect, useState } from "react"; import type { KioskBanner as Banner, KioskState } from "@/lib/useKiosk"; const btn = "px-2 py-0.5 rounded border border-line text-ink-2 hover:text-ink whitespace-nowrap"; export function KioskControls({ kiosk, state, onToggleKiosk }: { kiosk: boolean; state: KioskState; onToggleKiosk: () => void; }) { return ( <> {state.canFullscreen && ( )} {kiosk && state.wake === "on" && ( Awake )} > ); } export function KioskBanner({ banner, onRetry }: { banner: Banner | null; onRetry: () => void }) { const [now, setNow] = useState(() => Date.now()); useEffect(() => { if (!banner?.retryAt) return; const id = setInterval(() => setNow(Date.now()), 1000); return () => clearInterval(id); }, [banner?.retryAt]); if (!banner) return null; const secs = banner.retryAt ? Math.max(0, Math.ceil((banner.retryAt - now) / 1000)) : null; return (