diff --git a/packages/chess/src/ui/RulesDrawer.tsx b/packages/chess/src/ui/RulesDrawer.tsx index f80f287..20e4777 100644 --- a/packages/chess/src/ui/RulesDrawer.tsx +++ b/packages/chess/src/ui/RulesDrawer.tsx @@ -15,11 +15,13 @@ import { PRESET_REGISTRY } from '../presets/index.js'; */ export function RulesDrawer() { const [open, setOpen] = useState(false); - // Force-refresh trigger. The registry itself has no event emitter so we - // re-read on every open and every toggle click. - const [tick, setTick] = useState(0); + // Force-refresh trigger. The registry itself has no event emitter, so we + // bump this counter on every open and every toggle click to re-read the + // active set. The value is never read directly — only the setter is used + // to trigger a re-render of this component. + const [, setTick] = useState(0); - // Re-read active set on every open/close so external changes reflect. + // Re-read active set on every open so external changes reflect. useEffect(() => { if (open) setTick((t) => t + 1); }, [open]); @@ -95,7 +97,7 @@ export function RulesDrawer() { -
+
{presets.map((preset) => { const isOn = activeIds.has(preset.id); const blockedBy = preset.incompatibleWith.filter((id) =>