Files
workavia-calendar-front/src/app/store.ts
T
lenhanphung 7058f1c2d6 Feat/update login flow reload page (#467)
* update spacing event modal

* update spacing create calendar modal

* fix evenchip description color

* using variant instead of sx

* update login flow

* fix: add useEffect import back to Calendar.tsx
2026-01-26 11:13:26 +01:00

38 lines
1.3 KiB
TypeScript

import eventsCalendar from "@/features/Calendars/CalendarSlice";
import searchResultReducer from "@/features/Search/SearchSlice";
import settingsReducer from "@/features/Settings/SettingsSlice";
import userReducer from "@/features/User/userSlice";
import { combineReducers, configureStore } from "@reduxjs/toolkit";
import loadingReducer from "./loadingSlice";
import { createBrowserHistory } from "history";
import { createReduxHistoryContext } from "redux-first-history";
const { createReduxHistory, routerMiddleware, routerReducer } =
createReduxHistoryContext({ history: createBrowserHistory() });
const rootReducer = combineReducers({
router: routerReducer,
user: userReducer,
calendars: eventsCalendar,
settings: settingsReducer,
searchResult: searchResultReducer,
loading: loadingReducer,
});
export const setupStore = (preloadedState?: Partial<RootState>) => {
return configureStore({
reducer: rootReducer,
preloadedState,
middleware: (getDefaultMiddleware) =>
getDefaultMiddleware().concat(routerMiddleware),
});
};
export const store = setupStore();
export const history = createReduxHistory(store);
export type RootState = ReturnType<typeof rootReducer>;
export type AppStore = ReturnType<typeof setupStore>;
export type AppDispatch = AppStore["dispatch"];