0.1.4 โข Published 5 months ago
react-native-multistep v0.1.4
React Native MultiStep ๐
A flexible and animated multi-step form component for React Native, allowing you to easily create forms with multiple steps. ๐ The component provides step indicators, transition animations, and customizable buttons. ๐จ
๐ Features โจ
- โ Step Indicator: Displays a dynamic indicator to show the current step and progress. ๐
- โ Animations: Includes an animated scale effect on the active step indicator. ๐
- โ Customizable Buttons: Custom labels and styles for the back, next, and done buttons. ๐
- โ Customizable Styles: Easily customize every part of the form, including content container, step indicators, buttons, etc. ๐จ
๐ง Installation ๐ฆ
- Install the necessary dependencies:
npm install react-native-multistep
or
yarn add react-native-multistep
- Import the
MultiStepForm
component into your app: ๐
import { MultiStepForm } from 'react-native-multistep';
โ๏ธ Props
Prop | Type | Default | Description |
---|---|---|---|
stepsContent (required) | React.ReactNode[] | - | An array of React nodes, where each node represents the content for each step. ๐๏ธ |
onStepChange (optional) | (currentStep: number) => void | - | A callback triggered whenever the step changes. ๐ |
onStepForward (optional) | (currentStep: number) => void | - | A callback triggered when navigating to the next step. โญ๏ธ |
onStepBackward (optional) | (currentStep: number) => void | - | A callback triggered when navigating to the previous step. ๐ |
backButtonLabel (optional) | string | Back | Label for the Back button ๐ |
nextButtonLabel (optional) | string | Next | Label for the Next button โถ๏ธ |
doneButtonLabel (optional) | string | Done | Label for the Done button โ |
onComplete (optional) | () => void | - | A callback triggered when the form is completed. ๐ |
style (optional) | StyleProp<ViewStyle> | - | Custom style for the root container. ๐๏ธ |
nextButtonStyle (optional) | StyleProp<ViewStyle> | - | Custom style for the Next button ๐น |
previousButtonStyle (optional) | StyleProp<ViewStyle> | - | Custom style for the Previous button ๐ |
doneButtonStyle (optional) | StyleProp<ViewStyle> | - | Custom style for the Done button โ |
stepsContainerStyle (optional) | StyleProp<ViewStyle> | - | Custom style for the step indicators container ๐ข |
activeStepStyle (optional) | StyleProp<ViewStyle> | - | Custom style for active step indicators ๐ฅ |
inactiveStepStyle (optional) | StyleProp<ViewStyle> | - | Custom style for inactive step indicators โ๏ธ |
contentContainerStyle (optional) | StyleProp<ViewStyle> | - | Custom style for the content container ๐ |
buttonsContainerStyle (optional) | StyleProp<ViewStyle> | - | Custom style for the footer buttons container โ๏ธ |
lineColor (optional) | string | - | Custom color for the line between indicators โ |
activeLineColor (optional) | string | - | Custom color for the active line between indicators โ |
๐ Usage Example ๐งต
import React from 'react';
import { MultiStepForm } from 'react-native-multistep';
import { Text, View } from 'react-native';
const App = () => {
const stepsContent = [
<Text>Step 1: Personal Information ๐ค</Text>,
<Text>Step 2: Address ๐</Text>,
<Text>Step 3: Review โ
</Text>,
];
const handleStepChange = (currentStep: number) => {
console.log(`Current Step: ${currentStep}`);
};
const handleComplete = () => {
console.log('Form Completed! ๐');
};
return (
<MultiStepForm
stepsContent={stepsContent}
onStepChange={handleStepChange}
onComplete={handleComplete}
backButtonLabel="Go Back ๐"
nextButtonLabel="Next Step โถ๏ธ"
doneButtonLabel="Finish โ
"
style={{ padding: 20 }}
nextButtonStyle={{ backgroundColor: 'blue' }}
previousButtonStyle={{ backgroundColor: 'gray' }}
doneButtonStyle={{ backgroundColor: 'green' }}
activeStepStyle={{ backgroundColor: 'blue' }}
inactiveStepStyle={{ backgroundColor: 'lightgray' }}
/>
);
};
export default App;
๐จ Styling
The component uses StyleSheet.create
for default styles. Customize your form by passing the relevant props:
- Root Container:
style
๐๏ธ - Step Indicator Container:
stepsContainerStyle
๐ข - Active/Inactive Step Indicators:
activeStepStyle
,inactiveStepStyle
๐ฅ - Content Area:
contentContainerStyle
๐ - Footer Buttons Container:
buttonsContainerStyle
โ๏ธ - Back Button:
previousButtonStyle
๐ - Next Button:
nextButtonStyle
โถ๏ธ - Done Button:
doneButtonStyle
โ
๐ Animations
- Step Indicator Animation ๐ฅ: The active step indicator includes a scale effect when selected, providing a quick visual cue to the user. ๐
๐ค Contributing
See the contributing guide to learn how to contribute to the project. ๐ ๏ธ
๐ License
MIT ๐
Made with โค๏ธ by Aziz Becha ๐