import {configureStore} from '@reduxjs/toolkit' import {combineReducers} from "redux" import {persistReducer} from "redux-persist" import jobsReducer from "./features/jobs/jobsSlice" import upcomingStudentPlacementsReducer from "./features/placements/studentPlacements/upcomingStudentPlacementsSlice" import completedStudentPlacementsReducer from "./features/placements/studentPlacements/completedStudentPlacementsSlice" import contactsReducer from "./features/contacts/contactsSlice" import activePlacementReducer from "./features/placements/studentPlacements/activePlacement" import logsReducer from "./features/logs/logsSlice" import AsyncStorage from '@react-native-async-storage/async-storage' const persistConfig = { key: "root", version: 1, storage: AsyncStorage, } const reducers = combineReducers({ upcomingStudentPlacements: upcomingStudentPlacementsReducer, completedStudentPlacements: completedStudentPlacementsReducer, contacts: contactsReducer, activePlacement: activePlacementReducer, jobs: jobsReducer, logs: logsReducer, }); const persistedReducers = persistReducer(persistConfig, reducers); export const store = configureStore({ reducer: persistedReducers, devTools: process.env.NODE_ENV !== 'production', middleware: (getDefaultMiddleware) => getDefaultMiddleware({ immutableCheck: false, serializableCheck: false }), }); export type RootStateType = ReturnType export type RootState = { upcomingStudentPlacements: RootStateType["upcomingStudentPlacements"] completedStudentPlacements: RootStateType["completedStudentPlacements"], activePlacement: RootStateType["activePlacement"], contacts: RootStateType["contacts"], jobs: RootStateType["jobs"], logs: RootStateType["logs"], } export type AppDispatch = typeof store.dispatch