1.0.0 • Published 3 years ago
Share package React Native Step Indicator A simple react-native Step Indicator widget with custom styling using react-native-reanimated for introducing custom animations, in the manner we have it as a peer dependency, and implemented completely with typescript.
Installation npm install rn-steps-indicator react-native-reanimatedSimple Usage import StepIndicator from 'rn-steps-indicator';
// ...
const steps = ["This is my label", "This is my other label", "This is the third label"]
const defaultStyles = {
completed: {
label: {
fontSize: 14,
fontFamily: 'Roboto'
};
indicator: {
borderWidth: 1,
size: 30,
color: 'red',
};
stroke: {};
},
uncompleted: {
label: {
fontSize: 14,
fontFamily: 'Roboto'
};
indicator: {
borderWidth: 1,
size: 30,
color: 'blue',
};
stroke: {
style: 'dashed'
thickness: 3,
};
},
current: {
label: {
fontSize: 18,
fontFamily: 'Roboto'
};
indicator: {
borderWidth: 3,
size: 45,
color: 'green',
};
}
}
const MyRNStepIndicator = () => {
return (
<StepIndicator
steps={steps}
currentStep={currentStep}
setCurrentStep={setCurrentStep}
customStyles={defaultStyles}
/>
)
}
export default MyRNStepIndicator;Customizing Indicator and Label import StepIndicator from 'rn-steps-indicator';
// ...
const steps = ["This is my label", "This is my other label", "This is the third label"]
const defaultStyles = {
...
}
const renderCustomLabel = (step, status) => {
switch (status) {
case 'current':
return (
<Text style={styles.customStepIndicatorLabel}>{step}</Text>
);
case 'completed':
case 'uncompleted':
default:
return null;
}
}
const renderCustomIndicator = (step, status) => {
switch (status) {
case 'current':
return <Ionicons name="analytics-sharp" />;
case 'completed':
return <Ionicons name="checkmark" />;
case 'uncompleted':
default:
return null;
}
}
const MyRNStepIndicator = () => {
return (
<StepIndicator
steps={steps}
currentStep={currentStep}
setCurrentStep={setCurrentStep}
customStyles={defaultStyles}
renderLabel={renderCustomLabel}
renderStepIndicator={renderCustomIndicator}
/>
)
}
export default MyRNStepIndicator;Step Indicator Properties Name Description Type Default horizontalUsed for defining the direction of the step indicator Boolean true stepsArray of steps used in the step indicator String[] [] currentStepCurrent position of the steps Number 0 setCurrentStepFunction for updating the current position Function (stepPosition: number) () => {} renderLabelFunction that receives step and stepStatus as params and expects an element or null being returned as a custom label Function(step: Step, status: StepStatus) undefined renderStepIndicatorFunction that receives step and stepStatus as params and expects an element or null being returned as a custom indicator String[] true customStylesStyles for customizing as the user wishes, the step indicator StepIndicatorStyles {}
Custom Styles Name Type Default completedStepStyles {} currentStepStyles {} uncompletedStepStyles {}
Indicator Name Type Default borderWidthNumber 2 sizeNumber 30 StyleTextStyle {} colorString 'skyblue'
Stroke Name Type Default style'solid' or 'dashed' 'solid' dashStylesDashStyle {} thicknessNumber 4 colorString 'skyblue'
DashStyles Name Type Default gapNumber 2 lengthNumber 4 thicknessNumber 1 colorString 'gray'
Name Type Default labelTextStyle { fontSize: 18, fontWeight: '700' } indicatorIndicatorStyles {} strokeStrokeStyles {}
Indicator Name Type Default borderWidthNumber 4 sizeNumber 40 StyleTextStyle {} colorString 'green'
Indicator Name Type Default borderWidthNumber 2 sizeNumber 30 StyleTextStyle {} colorString 'gray'
Stroke Name Type Default style'solid' or 'dashed' 'solid' dashStylesDashStyle {} thicknessNumber 2 colorString ''gray
DashStyles Name Type Default gapNumber 2 lengthNumber 4 thicknessNumber 1 colorString 'gray'
Contributing See the contributing guide to learn how to contribute to the repository and the development workflow.
License MIT
Made with create-react-native-library