render.app.frontend/src/redux/store.js

38 lines
980 B
JavaScript

import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit';
import { loadState, saveState } from './stateLoader'
import lodash from 'lodash'
import { modelCrudReducer } from './slices/modelCrudSlice'
import { renderCrudReducer } from './slices/renderCrudSlice'
import { renderWebsocketReducer } from './slices/renderWebsocketSlice'
import { userAuthReducer } from './slices/userAuthSlice'
import { userCrudReducer } from './slices/userCrudSlice'
let persistedState = loadState()
export const store = configureStore({
reducer: {
modelCrudReducer,
renderCrudReducer,
renderWebsocketReducer,
userAuthReducer,
userCrudReducer
},
preloadedState: persistedState,
middleware: getDefaultMiddleware (
{
serializableCheck: false,
}
),
})
store.subscribe(() => {
saveState(store.getState());
});
store.subscribe(lodash.throttle(() => {
saveState(store.getState())
}, 100))