/ src / frontend / redux / Store.ts
Store.ts
 1  import { configureStore } from "@reduxjs/toolkit";
 2  
 3  import { TypedUseSelectorHook, useDispatch, useSelector } from "react-redux";
 4  import RootReducer from "./RootReducer";
 5  
 6  const store = configureStore({
 7    reducer: RootReducer,
 8    middleware: (getDefaultMiddleware) =>
 9      getDefaultMiddleware({
10        serializableCheck: false,
11      }),
12  });
13  // Infer the `RootState` and `AppDispatch` types from the store itself
14  export type RootState = ReturnType<typeof store.getState>;
15  // Selector Typed Hook
16  export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;
17  // Inferred type: {posts: PostsState, comments: CommentsState, users: UsersState}
18  export type AppDispatch = typeof store.dispatch;
19  // Dispatch Typed Hook
20  export const useAppDispatch: () => AppDispatch = useDispatch;
21  
22  export default store;