Cancel vault rereading without persisting a false document error
This commit is contained in:
@@ -21,9 +21,10 @@ export const DocumentVault = () => {
|
||||
|
||||
const DocumentVaultSession = ({signedIn}) => {
|
||||
const live = useRef(true);
|
||||
const readLifetime = useRef(new AbortController());
|
||||
const session = useRef(sessionGuard(getToken));
|
||||
const current = () => live.current && session.current();
|
||||
useEffect(() => { live.current = true; return () => { live.current = false; }; }, []);
|
||||
useEffect(() => { live.current = true; readLifetime.current = new AbortController(); return () => { live.current = false; readLifetime.current.abort(); }; }, []);
|
||||
const useOwnedState = (initial) => {
|
||||
const [value, setValue] = useState(initial);
|
||||
const setOwned = useCallback((next) => { if (current()) setValue(next); }, []);
|
||||
@@ -47,7 +48,7 @@ const DocumentVaultSession = ({signedIn}) => {
|
||||
if (!current()) return;
|
||||
setBusy(true); setHata(null); setIslemeBilgi(null);
|
||||
try {
|
||||
const result = await retryDocumentExtraction(document);
|
||||
const result = await retryDocumentExtraction(document,{signal:readLifetime.current.signal});
|
||||
setIslemeBilgi(`${document.ad}: ${result.sayi || 0} kalem çıkarıldı.`);
|
||||
} catch (error) { setHata(error.message); }
|
||||
finally {
|
||||
|
||||
Reference in New Issue
Block a user