/** * Review / Auto mode toggle switch. * * Reads and writes mode via getReviewMode / setReviewMode API. * Green dot = review mode active; amber = auto mode. */ import { useEffect, useState } from "react"; import { getReviewMode, setReviewMode } from "../api/client"; export default function ModeToggle() { const [reviewMode, setReviewModeState] = useState(null); const [toggling, setToggling] = useState(false); useEffect(() => { let cancelled = false; getReviewMode() .then((res) => { if (!cancelled) setReviewModeState(res.review_mode); }) .catch(() => { // silently fail — mode indicator will just stay hidden }); return () => { cancelled = true; }; }, []); async function handleToggle() { if (reviewMode === null || toggling) return; setToggling(true); try { const res = await setReviewMode(!reviewMode); setReviewModeState(res.review_mode); } catch { // swallow — leave previous state } finally { setToggling(false); } } if (reviewMode === null) return null; return (
{reviewMode ? "Review Mode" : "Auto Mode"}
); }