// store/slices/authSlice.ts import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { LoginResponse } from '../api/loginApi'; interface AuthState { token: string | null; refreshToken: string | null; id: number; username: string; email: string; firstName: string; lastName: string; gender: string; image: string; } const initialState: AuthState = { token: null, refreshToken: null, id: 0, username: '', email: '', firstName: '', lastName: '', gender: '', image: '', }; const authSlice = createSlice({ name: 'auth', initialState, reducers: { setAuthTokens: ( state, action: PayloadAction<{ token: string; refreshToken: string }> ) => { state.token = action.payload.token; state.refreshToken = action.payload.refreshToken; localStorage.setItem('token', action.payload.token); localStorage.setItem('refreshToken', action.payload.refreshToken); }, clearAuthTokens: (state) => { state.token = null; state.refreshToken = null; localStorage.removeItem('token'); localStorage.removeItem('refreshToken'); }, setUserDetails: (state, action: PayloadAction) => { state = action.payload; }, }, }); export const { setAuthTokens, clearAuthTokens, setUserDetails } = authSlice.actions; export default authSlice.reducer;