fix(app): harden account and workflow state

This commit is contained in:
cesnimda
2026-08-24 20:21:09 +02:00
parent e7cacad7d6
commit dca5daa1a2
32 changed files with 811 additions and 86 deletions
@@ -66,6 +66,7 @@ export function useViewResource<T>(
const [error, setError] = useState<ViewResourceError | null>(null);
const hasLoadedRef = useRef(hasLoaded);
const loadRef = useRef(load);
const requestSequence = useRef(0);
useEffect(() => {
hasLoadedRef.current = hasLoaded;
@@ -78,18 +79,22 @@ export function useViewResource<T>(
const reload = useCallback(async () => {
if (!enabled) return;
const requestId = ++requestSequence.current;
const alreadyLoaded = hasLoadedRef.current;
setLoading(!alreadyLoaded);
setRefreshing(alreadyLoaded);
try {
const next = await loadRef.current();
if (requestId !== requestSequence.current) return;
setData(next);
setError(null);
setHasLoaded(true);
} catch (err: any) {
if (requestId !== requestSequence.current) return;
setError(normalizeError(err, errorMessage));
setHasLoaded(true);
} finally {
if (requestId !== requestSequence.current) return;
setLoading(false);
setRefreshing(false);
}
@@ -97,6 +102,7 @@ export function useViewResource<T>(
useEffect(() => {
if (!enabled) {
requestSequence.current += 1;
setLoading(false);
return;
}