react-native-rue-wizard-stepper
Version:
43 lines (42 loc) • 1.22 kB
JavaScript
import React, { createContext, useEffect, useState } from 'react';
const StepperContext = createContext({
activeStep: 0,
nextStep: () => { },
prevStep: () => { },
totalSteps: 0,
isCompleted: false,
});
const StepperProvider = ({ children, totalNumberSteps = 1 }) => {
const [activeStep, setActiveStep] = useState(0);
const [totalSteps] = useState(totalNumberSteps);
const [isCompleted, setIsCompleted] = useState(false);
useEffect(() => {
if (activeStep === totalSteps - 1) {
setIsCompleted(true);
}
else {
setIsCompleted(false);
}
}, [activeStep]);
const nextStep = () => {
if (activeStep < totalSteps - 1) {
setActiveStep(prevState => prevState + 1);
}
};
const prevStep = () => {
if (activeStep > 0) {
setActiveStep(previousState => previousState - 1);
}
};
return (<StepperContext.Provider value={{
activeStep,
nextStep,
prevStep,
totalSteps,
isCompleted,
}}>
{children}
</StepperContext.Provider>);
};
export { StepperContext };
export default StepperProvider;