2023-09-21 11:52:54 +03:00

69 lines
2.3 KiB
JavaScript

import { createStore, combineReducers } from 'redux';
import { createWrapper } from 'next-redux-wrapper';
import authReducer from '../reducers/authReducer';
import userReducer from '../reducers/userReducer';
import companyReducer from '../reducers/companyReducer';
import companiesReducer from '../reducers/companiesReducer';
import contractsReducer from '../reducers/contractsReducer';
import contractReducer from '../reducers/contractReducer';
import calendarReducer from '../reducers/calendarReducer';
import eventsReducer from '../reducers/eventsReducer';
import supportReducer from '../reducers/supportReducer';
import adminReducer from '../reducers/adminReducer';
import contractsInfoReducer from '../reducers/contractsInfoReducer';
import contractEventsReducer from '../reducers/contractEventsReducer';
import contractFinesReducer from '../reducers/contractFinesReducer';
import questionnaireReducer from '../reducers/questionnaireReducer';
import dealsReducer from '../reducers/dealsReducer';
import edoReducer from '../reducers/edoReducer';
const combinedReducer = combineReducers({
auth: authReducer,
user: userReducer,
company: companyReducer,
companies: companiesReducer,
contracts: contractsReducer,
contract: contractReducer,
calendar: calendarReducer,
events: eventsReducer,
support: supportReducer,
admin: adminReducer,
contracts_info: contractsInfoReducer,
contract_events: contractEventsReducer,
contract_fines: contractFinesReducer,
questionnaire: questionnaireReducer,
deals: dealsReducer,
edo: edoReducer,
});
const makeStore = (context) =>
{
const isServer = typeof window === 'undefined';
if(isServer)
{
return createStore(combinedReducer);
}
else
{
const { persistStore, persistReducer } = require('redux-persist');
const storage = require('redux-persist/lib/storage').default;
const persistConfig = {
key: 'lkevoleasing',
whitelist: [ 'auth', 'user', 'company', 'events', 'companies', 'contracts_info', 'contract_events', 'contract_fines', 'questionnaire'],
storage
};
const persistedReducer = persistReducer(persistConfig, combinedReducer);
const store = createStore(persistedReducer);
store.__persistor = persistStore(store);
window.store = store;
return store;
}
}
export const reduxWrapper = createWrapper(makeStore);