diff --git a/src/App.js b/src/App.js index 052aa2c..7966eb8 100644 --- a/src/App.js +++ b/src/App.js @@ -276,7 +276,8 @@ function App() { reason: 'login-auto', startJob: !bootstrapResult?.storeRefreshJob, reuseOverlay: true, - block: true + block: true, + tokenOverride: data.token }); } updateSyncProgress('Login abgeschlossen', 98); @@ -334,14 +335,15 @@ function App() { } }, [session?.token, authorizedFetch]); - const fetchStoresList = useCallback(async () => { - if (!session?.token) { + const fetchStoresList = useCallback(async (tokenOverride) => { + const tokenToUse = tokenOverride || session?.token; + if (!tokenToUse) { return; } setStatus(''); setError(''); try { - const response = await authorizedFetch('/api/stores'); + const response = await authorizedFetch('/api/stores', {}, tokenToUse); if (!response.ok) { throw new Error(`HTTP ${response.status}`); } @@ -355,8 +357,9 @@ function App() { }, [session?.token, authorizedFetch]); const syncStoresWithProgress = useCallback( - async ({ block = false, reason = 'manual', startJob = true, reuseOverlay = false } = {}) => { - if (!session?.token) { + async ({ block = false, reason = 'manual', startJob = true, reuseOverlay = false, tokenOverride } = {}) => { + const effectiveToken = tokenOverride || session?.token; + if (!effectiveToken) { return; } if (!reuseOverlay) { @@ -372,7 +375,7 @@ function App() { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ force: true, reason }) - }); + }, effectiveToken); if (!response.ok) { throw new Error(`HTTP ${response.status}`); } @@ -386,7 +389,7 @@ function App() { let completed = false; while (!completed) { - const statusResp = await authorizedFetch('/api/stores/refresh/status'); + const statusResp = await authorizedFetch('/api/stores/refresh/status', {}, effectiveToken); if (!statusResp.ok) { throw new Error(`HTTP ${statusResp.status}`); } @@ -430,8 +433,8 @@ function App() { } } - await fetchStoresList(); - await fetchConfig(undefined, { silent: true }); + await fetchStoresList(effectiveToken); + await fetchConfig(effectiveToken, { silent: true }); setStatus('Betriebe aktualisiert.'); setTimeout(() => setStatus(''), 3000); } catch (err) { @@ -490,7 +493,8 @@ function App() { reason: 'session-auto', startJob: !result?.storeRefreshJob, reuseOverlay: true, - block: true + block: true, + tokenOverride: storedToken }); } }