not sure why those errors got removed we'll see
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
// src/services/apiClient.ts
|
||||
import { Profile, ShoppingListItem, SearchQuery, Budget, Address } from '../types';
|
||||
import { logger } from './logger.client';
|
||||
import { eventBus } from './eventBus';
|
||||
|
||||
// This constant should point to your backend API.
|
||||
// It's often a good practice to store this in an environment variable.
|
||||
@@ -62,12 +63,12 @@ const refreshToken = async (): Promise<string> => {
|
||||
logger.info('Successfully refreshed access token.');
|
||||
return data.token;
|
||||
} catch (error) {
|
||||
logger.error('Failed to refresh token. User will be logged out.', { error });
|
||||
logger.error({ error }, 'Failed to refresh token. User session has expired.');
|
||||
// Only perform browser-specific actions if in the browser environment.
|
||||
if (typeof window !== 'undefined') {
|
||||
localStorage.removeItem('authToken');
|
||||
// A hard redirect is a simple way to reset the app state to logged-out.
|
||||
// window.location.href = '/'; // Removed to allow the caller to handle session expiry.
|
||||
// Dispatch a global event that the UI layer can listen for to handle session expiry.
|
||||
eventBus.dispatch('sessionExpired');
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
@@ -144,9 +145,8 @@ export const apiFetch = async (
|
||||
// --- DEBUG LOGGING for failed requests ---
|
||||
if (!response.ok) {
|
||||
const responseText = await response.clone().text();
|
||||
logger.error(
|
||||
`apiFetch: Request to ${fullUrl} failed with status ${response.status}. Response body:`,
|
||||
responseText,
|
||||
logger.error({ url: fullUrl, status: response.status, body: responseText },
|
||||
'apiFetch: Request failed',
|
||||
);
|
||||
}
|
||||
// --- END DEBUG LOGGING ---
|
||||
|
||||
Reference in New Issue
Block a user