File tree 1 file changed +31
-0
lines changed
1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change
1
+ import type { Middleware , Reducer } from "@reduxjs/toolkit"
2
+ import { configureStore } from "@reduxjs/toolkit"
3
+ import { setupListeners } from "@reduxjs/toolkit/query"
4
+
5
+ // The store setup is wrapped in `makeStore` to allow reuse
6
+ // when setting up tests that need the same store config
7
+ export function makeStore < R extends Reducer > ( {
8
+ reducer,
9
+ middlewares = [ ] ,
10
+ preloadedState = { } ,
11
+ } : {
12
+ reducer : R
13
+ middlewares ?: Middleware [ ]
14
+ preloadedState ?: Partial < ReturnType < R > >
15
+ } ) {
16
+ const store = configureStore ( {
17
+ reducer,
18
+ // Adding the api middleware enables caching, invalidation, polling,
19
+ // and other useful features of `rtk-query`.
20
+ middleware : getDefaultMiddleware => {
21
+ return getDefaultMiddleware ( ) . concat ( middlewares )
22
+ } ,
23
+ preloadedState,
24
+ } )
25
+
26
+ // configure listeners using the provided defaults
27
+ // optional, but required for `refetchOnFocus`/`refetchOnReconnect` behaviors
28
+ setupListeners ( store . dispatch )
29
+
30
+ return store
31
+ }
You can’t perform that action at this time.
0 commit comments