Files
timetracker/frontend/src/api/client.ts
2026-02-16 15:41:59 +01:00

24 lines
673 B
TypeScript

import axios, { AxiosError } from "axios";
const apiClient = axios.create({
baseURL: "/api",
headers: {
"Content-Type": "application/json",
},
withCredentials: true,
});
// Response interceptor for error handling
apiClient.interceptors.response.use(
(response) => response,
(error: AxiosError<{ error?: string; details?: unknown }>) => {
// Let components handle authentication redirects via ProtectedRoute
// Don't automatically redirect on 401 to avoid infinite loops
const message =
error.response?.data?.error || error.message || "An error occurred";
return Promise.reject(new Error(message));
},
);
export default apiClient;