w-aura/src/store/index.ts
gofnnp 1430b67f31 AW-119-personal-video
show generated personal video on /v1/trial-payment page
2024-06-24 17:06:52 +04:00

166 lines
4.4 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 paywalls, { actions as paywallsActions } from "./paywalls";
import siteConfig, {
selectHome,
selectOpenAiToken,
actions as siteConfigActions,
} from "./siteConfig";
import onboardingConfig, {
selectOnboarding,
selectOnboardingBreath,
selectOnboardingCompatibility,
selectOnboardingHome,
selectOnboardingNavbarFooter,
actions as onboardingConfigActions,
} from "./onboarding";
import payment, {
actions as paymentActions,
selectActiveProduct,
selectIsDiscount,
selectStripeButton,
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 userConfig, {
actions as userConfigActions,
selectUserDeviceType,
selectIsShowTryApp,
selectIsForceShortPath,
} from "./userConfig";
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";
import palmistry, {
actions as palmistryActions,
selectPalmistryFingers,
selectPalmistryLines,
} from "./palmistry";
import { selectPaywallsIsMustUpdate, selectPaywalls } from "./paywalls";
import privacyPolicy, { actions as privacyPolicyActions, selectPrivacyPolicy } from "./privacyPolicy";
import personalVideo, { actions as personalVideoActions, selectPersonalVideo } from "./personalVideo";
const preloadedState = loadStore();
export const actions = {
token: tokenActions,
user: userActions,
form: formActions,
status: userStatusActions,
subscriptionPlan: subscriptionPlasActions,
aura: auraActions,
paywalls: paywallsActions,
siteConfig: siteConfigActions,
compatibility: compatibilityActions,
compatibilities: compatibilitiesActions,
payment: paymentActions,
userCallbacks: userCallbacksActions,
onboardingConfig: onboardingConfigActions,
questionnaire: questionnaireActions,
userConfig: userConfigActions,
palmistry: palmistryActions,
privacyPolicy: privacyPolicyActions,
personalVideo: personalVideoActions,
reset: createAction("reset"),
};
export const selectors = {
selectToken,
selectUser,
selectStatus,
selectPlanById,
selectAuraCoordinates,
selectRightUser,
selectSelfName,
selectCategoryId,
selectSelectedPrice,
selectActiveProduct,
selectUserCallbacksDescription,
selectUserCallbacksPrevStat,
selectHome,
selectIsDiscount,
selectSubscriptionReceipt,
selectOnboarding,
selectOnboardingHome,
selectOnboardingCompatibility,
selectOnboardingBreath,
selectOnboardingNavbarFooter,
selectCompatibilities,
selectQuestionnaire,
selectUserDeviceType,
selectIsShowTryApp,
selectIsForceShortPath,
selectOpenAiToken,
selectPalmistryLines,
selectPalmistryFingers,
selectPaywalls,
selectPaywallsIsMustUpdate,
selectPrivacyPolicy,
selectStripeButton,
selectPersonalVideo,
...formSelectors,
};
export const reducer = combineReducers({
token,
user,
form,
status,
subscriptionPlans,
aura,
payment,
compatibility,
compatibilities,
userCallbacks,
siteConfig,
onboardingConfig,
questionnaire,
userConfig,
palmistry,
paywalls,
privacyPolicy,
personalVideo
});
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);