import { useSyncExternalStore } from 'react'; // Counts saved control decisions in this browser session, so views that summarize accepted // controls (the Client Info overview) reload after a decision made elsewhere. let revision = 0; const listeners = new Set<() => void>(); export function markRegulatoryDecisionSaved(): void { revision += 1; listeners.forEach(listener => listener()); } function subscribe(listener: () => void) { listeners.add(listener); return () => { listeners.delete(listener); }; } export function useRegulatoryDecisionRevision(): number { return useSyncExternalStore(subscribe, () => revision, () => 0); }