Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | 540x 540x 540x 8339x 8339x 1x 8339x 540x 540x 540x | import { configureStore } from "@reduxjs/toolkit";
import { enableMapSet } from "immer";
// src/redux/rootReducer.ts
import { combineReducers } from "@reduxjs/toolkit";
import NiceModal from "@ebay/nice-modal-react";
import appReducer from "./slices/app";
import verificationReducer from "./slices/auth/verification";
import transactionsReducer from "./slices/transactions";
import customersReducer from "./slices/customers";
import fundraisersReducer from "./slices/fundraisers";
import sweepstakesReducer from "./slices/sweepstakes";
import merchantsReducer from "./slices/enterprise/merchants";
import enterprisesSlice from "./slices/acquirer/enterprises";
import acquirerSettingsReducer from "./slices/acquirer/acquirerSettings";
import cartReducer from "./slices/cart";
import AuthReducer from "./slices/auth/auth";
import enterpriseSettingsReducer from "./slices/enterprise/enterpriseSettings";
import accountsReducer, { setSelectedAccount } from "./slices/auth/accounts";
import searchReducer from "./slices/search";
import checkoutReducer from "./slices/checkout";
import productReducer from "./slices/products";
import analyticsReducer from "./slices/analytics";
import transactionRiskProfile from "./slices/acquirer/transactionRiskProfile";
import conversationsReducer from "./slices/conversations";
import accessControlReducer from "./slices/accessControl/accessControl";
import merchantPreviewReducer from "./slices/merchantPreview";
import unreadConversationSignReducer from "./slices/unreadConversationSign";
import tableFiltersReducer from "./slices/tableFilters";
import merchantFiltersReducer from "./slices/merchantFilters";
import changelogReducer from "./slices/changelog";
import filterReducer from "./slices/dynamicFilterSlice";
import uploadProgressSlice from "./slices/uploadProgressSlice";
import sortReducer from "./slices/sort";
import onboardingWizardReducer from "./slices/onboardingWizard";
import { cleanupAsyncExports } from "@hooks/transactions/useAsyncTransactionExport";
enableMapSet();
const combinedReducers = combineReducers({
app: appReducer,
verification: verificationReducer,
transactions: transactionsReducer,
customers: customersReducer,
fundraisers: fundraisersReducer,
sweepstakes: sweepstakesReducer,
merchants: merchantsReducer,
enterprises: enterprisesSlice,
auth: AuthReducer,
acquirerSettings: acquirerSettingsReducer,
enterpriseSettings: enterpriseSettingsReducer,
accounts: accountsReducer,
cart: cartReducer,
search: searchReducer,
sort: sortReducer,
filter: filterReducer,
checkout: checkoutReducer,
product: productReducer,
modals: NiceModal.reducer as any,
analytics: analyticsReducer,
transactionRiskProfile: transactionRiskProfile,
conversations: conversationsReducer,
accessControl: accessControlReducer,
merchantPreview: merchantPreviewReducer,
unreadConversationSign: unreadConversationSignReducer,
tableFilters: tableFiltersReducer,
merchantFilters: merchantFiltersReducer,
changelog: changelogReducer,
uploadProgress: uploadProgressSlice,
onboardingWizard: onboardingWizardReducer,
});
export const rootReducer: typeof combinedReducers = (state, action) => {
Iif (action.type === "LOGOUT") {
// Clean up async exports when user logs out
cleanupAsyncExports();
return combinedReducers(undefined, action);
}
// Clean up async exports when user switches account
if (
setSelectedAccount.match(action) &&
state?.accounts?.selectedAccount?.id &&
action.payload?.id &&
state.accounts.selectedAccount.id !== action.payload.id
) {
cleanupAsyncExports();
}
return combinedReducers(state, action);
};
const ENVIRONMENT = process.env.VITE_ENVIRONMENT;
export const store = configureStore({
reducer: rootReducer,
middleware: (getDefaultMiddleware) =>
getDefaultMiddleware({
immutableCheck: false,
serializableCheck: false,
}),
devTools: ENVIRONMENT !== "production",
});
export type AppDispatch = typeof store.dispatch;
|