-
- );
-}
diff --git a/src/services/api.js b/src/services/api.js
index b75ea73..2aa914e 100644
--- a/src/services/api.js
+++ b/src/services/api.js
@@ -1,6 +1,4 @@
import axios from 'axios';
-import { store } from '../store';
-import { clearCredentials } from '../features/auth/authSlice';
// Create configured Axios instance
const api = axios.create({
@@ -14,8 +12,9 @@ const api = axios.create({
// Request interceptor to attach JWT token
api.interceptors.request.use(
(config) => {
- const state = store.getState();
- const token = state.auth.token;
+ // Get token from localStorage directly to avoid circular dependency
+ const state = window.__REDUX_STORE__?.getState?.();
+ const token = state?.auth?.token;
if (token) {
config.headers.Authorization = `Bearer ${token}`;
@@ -36,7 +35,8 @@ api.interceptors.response.use(
(error) => {
// Handle 401 Unauthorized - logout user
if (error.response?.status === 401) {
- store.dispatch(clearCredentials());
+ // Dispatch clearCredentials through global store reference
+ window.__REDUX_STORE__?.dispatch({ type: 'auth/clearCredentials' });
// You might want to redirect to login page here
// window.location.href = '/login';
}
diff --git a/src/store/index.ts b/src/store/index.js
similarity index 87%
rename from src/store/index.ts
rename to src/store/index.js
index f840083..fb58285 100644
--- a/src/store/index.ts
+++ b/src/store/index.js
@@ -25,6 +25,3 @@ export const store = configureStore({
// persistor is exported so PersistGate in main.jsx can use it
export const persistor = persistStore(store);
-
-export type AppDispatch = typeof store.dispatch;
-export type RootState = ReturnType
-
-
- {/* Logo and Header */}
-
-
-
-
- {/* Error Alert */}
- {error && (
-
-
-
- S
-
- Welcome Back
-Sign in to your account to continue
-
- {error}
-
- )}
-
- {/* Login Form */}
-
-
- {/* Divider */}
-
-
-
- {/* Social Login Buttons */}
-
-
-
-
- or
-
-
-
-
-
-
- {/* Sign Up Link */}
-
- Don't have an account?{' '}
-
- Create one
-
-
-