2024-10-31 14:44:45 +01:00
|
|
|
import Container from '../../ReusableComponents/Container';
|
2024-11-20 16:56:44 +01:00
|
|
|
import { OnboardingHooks } from '../../../data';
|
2024-10-31 15:03:25 +01:00
|
|
|
import { getSteps } from './availableSteps';
|
2024-11-20 17:23:19 +01:00
|
|
|
import Navigation from './Components/Navigation';
|
2024-10-23 15:24:52 +02:00
|
|
|
|
2024-10-31 15:11:36 +01:00
|
|
|
const getCurrentStep = ( requestedStep, steps ) => {
|
|
|
|
const isValidStep = ( step ) =>
|
|
|
|
typeof step === 'number' &&
|
|
|
|
Number.isInteger( step ) &&
|
|
|
|
step >= 0 &&
|
|
|
|
step < steps.length;
|
|
|
|
|
|
|
|
const safeCurrentStep = isValidStep( requestedStep ) ? requestedStep : 0;
|
|
|
|
return steps[ safeCurrentStep ];
|
|
|
|
};
|
|
|
|
|
2024-10-23 15:24:52 +02:00
|
|
|
const Onboarding = () => {
|
2024-11-20 16:56:44 +01:00
|
|
|
const { step, setStep, setCompleted, flags } = OnboardingHooks.useSteps();
|
2024-10-31 15:11:36 +01:00
|
|
|
const steps = getSteps( flags );
|
|
|
|
|
|
|
|
const CurrentStepComponent = getCurrentStep( step, steps );
|
2024-10-24 06:35:48 +02:00
|
|
|
|
2024-10-23 15:24:52 +02:00
|
|
|
return (
|
2024-11-12 15:01:29 +01:00
|
|
|
<>
|
|
|
|
<Navigation
|
|
|
|
setStep={ setStep }
|
|
|
|
currentStep={ step }
|
|
|
|
setCompleted={ setCompleted }
|
|
|
|
stepperOrder={ steps }
|
|
|
|
/>
|
|
|
|
<Container page="onboarding">
|
|
|
|
<div className="ppcp-r-card">
|
|
|
|
<CurrentStepComponent
|
|
|
|
setStep={ setStep }
|
|
|
|
currentStep={ step }
|
|
|
|
setCompleted={ setCompleted }
|
|
|
|
stepperOrder={ steps }
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</Container>
|
|
|
|
</>
|
2024-10-23 15:24:52 +02:00
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default Onboarding;
|