w-aura/src/store/index.ts
Денис Катаев 1ccc5aa835 Preview/discount pages
2024-02-10 02:30:02 +00:00

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);