Some checks failed
Test examples / Test Examples (20) (push) Has been cancelled
Test examples / Test Examples (22) (push) Has been cancelled
Lock Threads / action (push) Has been cancelled
Trigger Release / start (push) Has been cancelled
Stale issue handler / stale (push) Has been cancelled
Update Font Data / create-pull-request (push) Has been cancelled
build-and-deploy / deploy-target (push) Has been cancelled
build-and-deploy / build (push) Has been cancelled
build-and-deploy / stable - aarch64-unknown-linux-musl - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-unknown-linux-musl - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-unknown-linux-gnu - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-unknown-linux-gnu - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-pc-windows-msvc - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-pc-windows-msvc - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-apple-darwin - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-apple-darwin - node@16 (push) Has been cancelled
build-and-deploy / build-wasm (nodejs) (push) Has been cancelled
build-and-deploy / build-wasm (web) (push) Has been cancelled
build-and-deploy / Deploy preview tarball (push) Has been cancelled
build-and-deploy / Potentially publish release (push) Has been cancelled
build-and-deploy / publish-turbopack-npm-packages (push) Has been cancelled
build-and-deploy / Deploy examples (push) Has been cancelled
build-and-deploy / thank you, build (push) Has been cancelled
build-and-deploy / Upload Turbopack Bytesize metrics to Datadog (push) Has been cancelled
Rspack Next.js development integration tests / Rspack integration tests (push) Has been cancelled
Rspack Next.js production integration tests / Rspack integration tests (push) Has been cancelled
Turbopack Next.js development integration tests / Next.js integration tests (push) Has been cancelled
Turbopack Next.js production integration tests / Next.js integration tests (push) Has been cancelled
Update Rspack test manifest / Update and upload Rspack development test manifest (push) Has been cancelled
Update Rspack test manifest / Update and upload Rspack production test manifest (push) Has been cancelled
Upload bundler test manifests to areweturboyet.com / Upload test results (push) Has been cancelled
Update React / create-pull-request (push) Has been cancelled
test-e2e-project-reset-cron / reset-test-project (push) Has been cancelled
Notify about the top 15 issues/PRs/feature requests (most reacted) in the last 90 days / run (push) Has been cancelled
37 lines
1.5 KiB
TypeScript
37 lines
1.5 KiB
TypeScript
import type { Action, ThunkAction } from "@reduxjs/toolkit";
|
|
import { combineSlices, configureStore } from "@reduxjs/toolkit";
|
|
import { counterSlice } from "./features/counter/counterSlice";
|
|
import { quotesApiSlice } from "./features/quotes/quotesApiSlice";
|
|
|
|
// `combineSlices` automatically combines the reducers using
|
|
// their `reducerPath`s, therefore we no longer need to call `combineReducers`.
|
|
const rootReducer = combineSlices(counterSlice, quotesApiSlice);
|
|
// Infer the `RootState` type from the root reducer
|
|
export type RootState = ReturnType<typeof rootReducer>;
|
|
|
|
// `makeStore` encapsulates the store configuration to allow
|
|
// creating unique store instances, which is particularly important for
|
|
// server-side rendering (SSR) scenarios. In SSR, separate store instances
|
|
// are needed for each request to prevent cross-request state pollution.
|
|
export const makeStore = () => {
|
|
return configureStore({
|
|
reducer: rootReducer,
|
|
// Adding the api middleware enables caching, invalidation, polling,
|
|
// and other useful features of `rtk-query`.
|
|
middleware: (getDefaultMiddleware) => {
|
|
return getDefaultMiddleware().concat(quotesApiSlice.middleware);
|
|
},
|
|
});
|
|
};
|
|
|
|
// Infer the return type of `makeStore`
|
|
export type AppStore = ReturnType<typeof makeStore>;
|
|
// Infer the `AppDispatch` type from the store itself
|
|
export type AppDispatch = AppStore["dispatch"];
|
|
export type AppThunk<ThunkReturnType = void> = ThunkAction<
|
|
ThunkReturnType,
|
|
RootState,
|
|
unknown,
|
|
Action
|
|
>;
|