import axios from 'axios'; import { useAuthStore } from '../stores/authStore'; const api = axios.create({ baseURL: '/api', headers: { 'Content-Type': 'application/json' }, }); api.interceptors.request.use((config) => { const token = useAuthStore.getState().token; if (token) { config.headers.Authorization = `Bearer ${token}`; } return config; }); api.interceptors.response.use( (response) => response, (error) => { if (error.response?.status === 401) { useAuthStore.getState().logout(); window.location.href = '/login'; } // Handle org suspended/archived — redirect to org selection if ( error.response?.status === 403 && typeof error.response?.data?.message === 'string' && error.response.data.message.includes('has been') ) { const store = useAuthStore.getState(); store.setCurrentOrg({ id: '', name: '', role: '' }); // Clear current org window.location.href = '/select-org'; } return Promise.reject(error); }, ); export default api;