import { configureStore } from '@reduxjs/toolkit' import { setupListeners } from '@reduxjs/toolkit/query/react' import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux' import { baseApi } from './base-api' import { decksSlice } from '@/services/decks/decks.slice.ts' export const store = configureStore({ reducer: { [baseApi.reducerPath]: baseApi.reducer, [decksSlice.name]: decksSlice.reducer, }, middleware: getDefaultMiddleware => getDefaultMiddleware().concat(baseApi.middleware), }) export type AppDispatch = typeof store.dispatch export type RootState = ReturnType // Use throughout your app instead of plain `useDispatch` and `useSelector` export const useAppDispatch: () => AppDispatch = useDispatch export const useAppSelector: TypedUseSelectorHook = useSelector setupListeners(store.dispatch)