UNPKG

@atomazing-org/mock-plop

Version:

The `@atomazing-org/mock-plop` library is a configuration script designed for Plop, a tool aimed at automating code generation within projects utilizing templates. Specifically, this script focuses on generating and updating files associated with mocks (p

43 lines (33 loc) 1.25 kB
import { useDispatch, useSelector } from 'react-redux' import { combineReducers, configureStore } from '@reduxjs/toolkit' import { baseApi } from '@api/baseApi' import { rtkQueryHandler } from '@api/rtkQueryHandler' import type { ThunkMiddleware } from '@reduxjs/toolkit' import type { TypedUseSelectorHook } from 'react-redux' const apis = [baseApi] const middlewares = apis.map(api => api.middleware as ThunkMiddleware) const reducers = { // Если приложение использует slice, тогда сюда нужно вставить в формате: // [themeSlice.name]: themeSlice.reducer } const createRootReducer = () => combineReducers( apis.reduce( (storeReducers, api) => ({ ...storeReducers, [api.reducerPath]: api.reducer, }), { ...reducers, }, ), ) export const store = configureStore({ reducer: createRootReducer(), middleware: gDM => gDM().concat(rtkQueryHandler, ...middlewares), devTools: process.env.NODE_ENV !== 'production', }) export type RootState = ReturnType<typeof store.getState> export type AppDispatch = typeof store.dispatch export const useAppDispatch: () => AppDispatch = useDispatch export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector