import { useEffect, useRef } from "react"; import { useEncounterContext } from "../contexts/encounter-context.js"; import { useSidePanelContext } from "../contexts/side-panel-context.js"; export function useAutoStatBlock(): void { const { encounter } = useEncounterContext(); const { panelView, updateCreature } = useSidePanelContext(); const activeCreatureId = encounter.combatants[encounter.activeIndex]?.creatureId; const prevActiveIndexRef = useRef(encounter.activeIndex); useEffect(() => { const prevIndex = prevActiveIndexRef.current; prevActiveIndexRef.current = encounter.activeIndex; // Only auto-update when the active turn changes (advance/retreat), // not when the panel mode changes (user clicking a different creature). if ( encounter.activeIndex !== prevIndex && activeCreatureId && panelView.mode === "creature" ) { updateCreature(activeCreatureId); } }, [encounter.activeIndex, activeCreatureId, panelView.mode, updateCreature]); }