import React from 'react'; import { AnimatePresence, motion } from 'framer-motion'; import { useLocation } from 'react-router-dom'; import './steps-manager.css'; import Progressbar from '@/components/palmistry/progress-bar/progress-bar'; import PalmistryContainer from '@/components/palmistry/palmistry-container/palmistry-container'; import useSteps, { Step } from '@/hooks/palmistry/use-steps'; import StepWelcome from '@/components/palmistry/step-welcome/step-welcome'; import StepGender from '@/components/palmistry/step-gender/step-gender'; import StepBirthdate from '@/components/palmistry/step-birthdate/step-birthdate'; import StepPalmsHold from '@/components/palmistry/step-palms-hold/step-palms-hold'; import StepWish from '@/components/palmistry/step-wish/step-wish'; import StepRelationshipStatus from '@/components/palmistry/step-relationship-status/step-relationship-status'; import StepResonatedElement from '@/components/palmistry/step-resonated-element/step-resonated-element'; import StepColorYouLike from '@/components/palmistry/step-color-you-like/step-color-you-like'; import StepDecisions from '@/components/palmistry/step-decisions/step-decisions'; import StepGuidancePlan from '@/components/palmistry/step-guidance-plan/step-guidance-plan'; import StepPersonalStatement from '@/components/palmistry/step-personal-statement/step-personal-statement'; import StepScanInfo from '@/components/palmistry/step-scan-info/step-scan-info'; import StepUpload from '@/components/palmistry/step-upload/step-upload'; import StepScanPhoto from '@/components/palmistry/step-scan-photo/step-scan-photo'; import StepEmail from '@/components/palmistry/step-email/step-email'; import StepSubscriptionPlan from '@/components/palmistry/step-subscription-plan/step-subscription-plan'; import StepPaywall from '@/components/palmistry/step-paywall/step-paywall'; import PaymentScreen from '@/components/palmistry/payment-screen/payment-screen'; import DiscountScreen from '@/components/palmistry/discount-screen/discount-screen'; import PremiumBundleScreen from '@/components/palmistry/premium-bundle-screen/premium-bundle-screen'; const PalmistryContainerWrapper = (props: { children: React.ReactNode, currentStep: Step }) => { return ( {props.children} ); }; const animationDuration = 0.2; export default function StepsManager() { const steps = useSteps(); const { pathname } = useLocation(); const [modalIsOpen, setModalIsOpen] = React.useState(false); React.useLayoutEffect(() => { if (!steps.isInited) return; steps.goFirstUnpassedStep(); }, [steps.isInited]); const motionDivClassName = [ 'steps-manager__motion-div', modalIsOpen ? 'steps-manager__motion-div_no-transform' : '', ]; const nonSliderSteps = [ Step.Payment, Step.Discount, Step.PremiumBundle, ]; return (
{steps.currentNumber >= steps.progressBarRange[0] && steps.currentNumber <= steps.progressBarRange[1] && ( )}
{nonSliderSteps.includes(steps.current as Step) && ( {steps.current === Step.Payment && } {steps.current === Step.Discount && } {steps.current === Step.PremiumBundle && } )} {!nonSliderSteps.includes(steps.current as Step) && ( {steps.current === Step.Welcome && } {steps.current === Step.Gender && } {steps.current === Step.Birthdate && } {steps.current === Step.PalmsHold && } {steps.current === Step.Wish && } {steps.current === Step.RelationshipStatus && } {steps.current === Step.ResonatedElement && } {steps.current === Step.ColorYouLike && } {steps.current === Step.Decisions && } {steps.current === Step.GuidancePlan && } {steps.current === Step.PersonalStatement && } {steps.current === Step.ScanInfo && } {steps.current === Step.Upload && } {steps.current === Step.ScanPhoto && } {steps.current === Step.Email && } {steps.current === Step.SubscriptionPlan && } {steps.current === Step.Paywall && } )}
); }