import { combineReducers } from 'redux'; import { connectRouter } from 'connected-react-router'; import { appReducer } from 'app/common/store/app/app.reducer'; import { userReducer } from 'app/modules/user/store/user.reducer'; import { filtersReducer } from 'app/shared/store/filters'; import { poolsReducer } from 'app/modules/pools/store/pool.reducer'; import { earningsReducer } from 'app/modules/earnings/store/earnings.reducer'; import { poolPartnersReducer } from 'app/modules/poolPartners/store'; import { RESET_STORE } from 'app/common/store/store.constants'; import { forecastReducer } from 'app/modules/forecast/store/forecast.reducer'; import { documentsReducer } from 'app/modules/documents/store/documents.reducer'; import { contactReducer } from 'app/modules/contact/store/contact.reducer'; import { marketsReducer } from 'app/modules/markets/store/markets.reducer'; import { calendarReducer } from 'app/modules/calendar/store/calendar.reducer'; import { newsReducer } from 'app/modules/news/store/news.reducer'; import { vesselDetailsReducer } from 'app/modules/vesselDetails/root/store/vesselDetails.reducer'; import { notificationsReducer } from 'app/modules/notifications/store/notifications.reducer'; import { uiReducer } from 'app/shared/store/ui/ui.reducer'; import { paymentDetailsReducer } from 'app/modules/vesselDetails/paymentDetails/store/paymentDetails.reducer'; import { loadingReducer } from 'app/shared/modules/loading/loading.reducer'; import { errorLoadingReducer } from 'app/shared/modules/loading/errorLoading.reducer'; import { technicalManagementReducer } from 'app/modules/technicalManagement/store/technicalManagement.reducer'; import { vesselDetailsOffHireReducer } from '../../shared/store/offHire/offHire.reducer'; import { vesselGroupsReducer } from 'app/modules/earnings/store/vesselGroups'; import { bunkerAdjustmentReducer } from 'app/modules/bunkerAdjustment/store/bunkerAdjustment.reducer'; import { updateNotificationsReducer } from 'app/modules/notifications/store/updateNotification/updateNotifiactions.reducer'; import { welcomePopupReducer } from 'app/modules/welcomePopUp/store/welcomePopup.reducer'; import { biReducer } from 'app/modules/reports/store/bi.reducer'; import { persistReducer } from 'redux-persist'; import { persistBiConfig } from './configure.store'; import { faqReducer } from 'app/modules/faq/store/faq.reducer'; import { dashboardReducer } from 'app/modules/dashboard/store/dashboard.reducer'; import { StoreState } from './store.types'; import { tceDevelopmentReducer } from 'app/modules/vesselDetails/tceDevelopment/store/tceDevelopment.reducer'; import { voyageReducer } from 'app/modules/vesselDetails/voyage/store/voyage.reducer'; import { surveyReducer } from '../../modules/survey/store/survey.reducer'; import { emissionUniverseReducer } from '../../modules/emissionUniverse/store/emissionUniverse.reducer'; const storeReducer = (history) => combineReducers({ app: appReducer, bunkerAdjustment: bunkerAdjustmentReducer, calendar: calendarReducer, contact: contactReducer, documents: documentsReducer, earnings: earningsReducer, filters: filtersReducer, forecast: forecastReducer, markets: marketsReducer, news: newsReducer, notifications: notificationsReducer, paymentDetails: paymentDetailsReducer, tceDevelopment: tceDevelopmentReducer, poolPartners: poolPartnersReducer, vesselGroups: vesselGroupsReducer, pools: poolsReducer, router: connectRouter(history), ui: uiReducer, user: userReducer, vesselDetails: vesselDetailsReducer, loading: loadingReducer, errorLoading: errorLoadingReducer, technicalManagement: technicalManagementReducer, offHire: vesselDetailsOffHireReducer, updateNotifications: updateNotificationsReducer, welcomePopup: welcomePopupReducer, bi: persistReducer(persistBiConfig, biReducer), faq: faqReducer, dashboard: dashboardReducer, voyages: voyageReducer, survey: surveyReducer, emissionUniverse: emissionUniverseReducer, }); const rootReducer = (history) => (state, action = { type: '' }) => { if (action.type === RESET_STORE) { return storeReducer(history)(undefined, action); } return storeReducer(history)(state, action); }; export { rootReducer };