From b43979dd58569150bf4aaaacd9f8c6066b62f447 Mon Sep 17 00:00:00 2001 From: Arthur Jamet Date: Thu, 13 Apr 2023 14:17:54 +0100 Subject: [PATCH] Front: Store: Fix typesafety --- front/state/Store.ts | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/front/state/Store.ts b/front/state/Store.ts index 35850a1..331573b 100644 --- a/front/state/Store.ts +++ b/front/state/Store.ts @@ -1,24 +1,29 @@ import userReducer from '../state/UserSlice'; import settingsReduder from './SettingsSlice'; -import { configureStore } from '@reduxjs/toolkit'; +import { StateFromReducersMapObject, configureStore } from '@reduxjs/toolkit'; import languageReducer from './LanguageSlice'; import { TypedUseSelectorHook, useDispatch as reduxDispatch, useSelector as reduxSelector } from 'react-redux' import { persistStore, persistCombineReducers, FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from "redux-persist"; import AsyncStorage from '@react-native-async-storage/async-storage'; +import { CurriedGetDefaultMiddleware } from '@reduxjs/toolkit/dist/getDefaultMiddleware'; +import { PersistPartial } from 'redux-persist/es/persistReducer'; const persistConfig = { key: 'root', storage: AsyncStorage } +const reducers = { + user: userReducer, + language: languageReducer, + settings: settingsReduder +} + +type State = StateFromReducersMapObject; let store = configureStore({ - reducer: persistCombineReducers(persistConfig, { - user: userReducer, - language: languageReducer, - settings: settingsReduder - }), - middleware: (getDefaultMiddleware) => - getDefaultMiddleware({ + reducer: persistCombineReducers(persistConfig, reducers), + middleware: (getDefaultMiddleware: CurriedGetDefaultMiddleware) => + getDefaultMiddleware({ serializableCheck: { ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER], },