woocommerce-paypal-payments/modules/ppcp-settings/resources/js/Components/Screens/Onboarding/Onboarding.js

49 lines
1.2 KiB
JavaScript
Raw Normal View History

2024-10-25 06:45:01 +02:00
import Container, {
PAGE_ONBOARDING,
} from '../../ReusableComponents/Container.js';
2024-10-23 15:24:52 +02:00
import StepWelcome from './StepWelcome.js';
2024-10-24 13:54:50 +02:00
import StepBusiness from './StepBusiness.js';
import StepProducts from './StepProducts.js';
import { useOnboardingStep } from '../../../data';
2024-10-23 15:24:52 +02:00
const Onboarding = () => {
const { step, setStep, setCompleted } = useOnboardingStep();
2024-10-24 06:35:48 +02:00
2024-10-23 15:24:52 +02:00
return (
2024-10-25 06:45:01 +02:00
<Container page={ PAGE_ONBOARDING }>
2024-10-23 15:24:52 +02:00
<div className="ppcp-r-card">
<OnboardingStep
currentStep={ step }
setStep={ setStep }
setCompleted={ setCompleted }
/>
2024-10-23 15:24:52 +02:00
</div>
</Container>
);
};
const OnboardingStep = ( { currentStep, setStep, setCompleted } ) => {
2024-10-24 13:54:50 +02:00
const stepperOrder = [ StepWelcome, StepBusiness, StepProducts ];
2024-10-24 06:35:48 +02:00
const isValidStep = ( step ) =>
typeof step === 'number' &&
Number.isInteger( step ) &&
step >= 0 &&
step < stepperOrder.length;
const safeCurrentStep = isValidStep( currentStep ) ? currentStep : 0;
const CurrentStepComponent = stepperOrder[ safeCurrentStep ];
return (
<CurrentStepComponent
setStep={ setStep }
currentStep={ safeCurrentStep }
setCompleted={ setCompleted }
stepperOrder={ stepperOrder }
/>
);
2024-10-24 06:35:48 +02:00
};
2024-10-23 15:24:52 +02:00
export default Onboarding;