128 lines
3.3 KiB
TypeScript
128 lines
3.3 KiB
TypeScript
import {
|
|
combineReducers,
|
|
configureStore,
|
|
createAction,
|
|
} from "@reduxjs/toolkit";
|
|
import token, { actions as tokenActions, selectToken } from "./token";
|
|
import questionnaire, {
|
|
actions as questionnaireActions,
|
|
selectQuestionnaire,
|
|
} from "./questionnaire";
|
|
import user, { actions as userActions, selectUser } from "./user";
|
|
import form, {
|
|
actions as formActions,
|
|
selectors as formSelectors,
|
|
} from "./form";
|
|
import aura, { actions as auraActions } from "./aura";
|
|
import siteConfig, {
|
|
selectHome,
|
|
actions as siteConfigActions,
|
|
} from "./siteConfig";
|
|
import onboardingConfig, {
|
|
selectOnboarding,
|
|
selectOnboardingBreath,
|
|
selectOnboardingCompatibility,
|
|
selectOnboardingHome,
|
|
selectOnboardingNavbarFooter,
|
|
actions as onboardingConfigActions,
|
|
} from "./onboarding";
|
|
import payment, {
|
|
actions as paymentActions,
|
|
selectActiveSubPlan,
|
|
selectIsDiscount,
|
|
selectSubscriptionReceipt,
|
|
} from "./payment";
|
|
import subscriptionPlans, {
|
|
actions as subscriptionPlasActions,
|
|
selectPlanById,
|
|
} from "./subscriptionPlan";
|
|
import status, { actions as userStatusActions, selectStatus } from "./status";
|
|
import compatibility, {
|
|
actions as compatibilityActions,
|
|
selectSelfName,
|
|
} from "./compatibility";
|
|
import compatibilities, {
|
|
actions as compatibilitiesActions,
|
|
selectCompatibilities,
|
|
} from "./compatibilities";
|
|
import userCallbacks, {
|
|
actions as userCallbacksActions,
|
|
} from "./userCallbacks";
|
|
import { loadStore, backupStore } from "./storageHelper";
|
|
import { selectAuraCoordinates } from "./aura";
|
|
import { selectSelectedPrice } from "./payment";
|
|
import { selectRightUser, selectCategoryId } from "./compatibility";
|
|
import {
|
|
selectUserCallbacksDescription,
|
|
selectUserCallbacksPrevStat,
|
|
} from "./userCallbacks";
|
|
|
|
const preloadedState = loadStore();
|
|
export const actions = {
|
|
token: tokenActions,
|
|
user: userActions,
|
|
form: formActions,
|
|
status: userStatusActions,
|
|
subscriptionPlan: subscriptionPlasActions,
|
|
aura: auraActions,
|
|
siteConfig: siteConfigActions,
|
|
compatibility: compatibilityActions,
|
|
compatibilities: compatibilitiesActions,
|
|
payment: paymentActions,
|
|
userCallbacks: userCallbacksActions,
|
|
onboardingConfig: onboardingConfigActions,
|
|
questionnaire: questionnaireActions,
|
|
reset: createAction("reset"),
|
|
};
|
|
export const selectors = {
|
|
selectToken,
|
|
selectUser,
|
|
selectStatus,
|
|
selectPlanById,
|
|
selectAuraCoordinates,
|
|
selectRightUser,
|
|
selectSelfName,
|
|
selectCategoryId,
|
|
selectSelectedPrice,
|
|
selectActiveSubPlan,
|
|
selectUserCallbacksDescription,
|
|
selectUserCallbacksPrevStat,
|
|
selectHome,
|
|
selectIsDiscount,
|
|
selectSubscriptionReceipt,
|
|
selectOnboarding,
|
|
selectOnboardingHome,
|
|
selectOnboardingCompatibility,
|
|
selectOnboardingBreath,
|
|
selectOnboardingNavbarFooter,
|
|
selectCompatibilities,
|
|
selectQuestionnaire,
|
|
...formSelectors,
|
|
};
|
|
|
|
export const reducer = combineReducers({
|
|
token,
|
|
user,
|
|
form,
|
|
status,
|
|
subscriptionPlans,
|
|
aura,
|
|
payment,
|
|
compatibility,
|
|
compatibilities,
|
|
userCallbacks,
|
|
siteConfig,
|
|
onboardingConfig,
|
|
questionnaire,
|
|
});
|
|
|
|
export type RootState = ReturnType<typeof reducer>;
|
|
export const store = configureStore({
|
|
reducer,
|
|
preloadedState,
|
|
devTools: import.meta.env.DEV,
|
|
});
|
|
export type AppDispatch = typeof store.dispatch;
|
|
export type StoreType = typeof store;
|
|
export const unsubscribe = backupStore(store);
|