not sure why those errors got removed we'll see

This commit is contained in:
2025-12-24 16:16:42 -08:00
parent 7399a27600
commit de3f21a7ec
20 changed files with 96 additions and 258 deletions

View File

@@ -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 ---