A set of React components for building multi step wizards in a simple manner, fully written in TypeScript.
npm:
npm install --save react-wizard-builder
yarn:
yarn add react-wizard-builder
import { Wizard } from 'react-wizard-builder'
const App = () => (
<Wizard
renderHeader={(props) => <Header {...props} />}
onNextStep={({ currentStep }) => console.log('On next step ' + currentStep)}
onPreviousStep={({ currentStep }) => console.log('On previous step ' + currentStep)}
onFinish={() => console.log('Wizard finished!')}
>
<Wizard.Step render={({ currentStep, next, previous, firstStep, lastStep }) => <div>Step 1</div>} />
<Wizard.Step render={({ currentStep, next, previous, firstStep, lastStep }) => <div>Step 2</div>} />
<Wizard.Step render={({ currentStep, next, previous, firstStep, lastStep }) => <div>Step 3</div>} />
</Wizard>
)
All render props receives the WizardFramework
object as a parameter, wich has a set of utilities to handle the wizard:
Prop | Type | Description |
---|---|---|
currentStep | Number |
The current step of the wizard. |
countSteps | Number |
The amount of steps of the wizard. |
next | Function |
Function to go to the next step. |
previous | Function |
Function to go back to the previous step. |
goToStep | Function |
Function to go to a specified step. |
lastStep | Boolean |
Boolean which specifies if the current step is the last one. |
firstStep | Boolean |
Boolean which specifies if the current step is the first one. |
Prop | Type | Required | Description |
---|---|---|---|
renderHeader | Function |
True |
Function to render the header. Receives WizardFramework object as param and returns a React component. |
renderStatusBar | Function |
True |
Function to render a custom status bar. Receives WizardFramework object as param and returns a React component. |
hideStatusBar | Boolean |
False |
Hides the status bar. Defaults to False . |
renderFooter | Function |
False |
Function to render a custom footer. Receives WizardFramework object as param and returns a React component. |
hideFooter | Boolean |
True |
Hides the footer. Defaults to False . |
onNextStep | Function |
False |
Callback when the wizard goes to next step. |
onPreviousStep | Function |
False |
Callback when the wizard goes to previous step. |
onFinish | Function |
False |
Callback when the wizard will finish. |
initialStep | Number |
False |
Defaults to 0 . |
previousStepLabel | String |
False |
Label to show on previous step button. Defaults to 'Previous'. |
nextStepLabel | String |
False |
Label to show on next step button. Defaults to 'Next'. |
finishStepLabel | String |
False |
Label to show on finish wizard button. Defaults to 'Finish'. |
className | String |
False |
CSS class name to override default wizard styles. |
footerClassName | String |
False |
CSS class name to override default footer styles. |
statusBarClassName | String |
False |
CSS class name to override default status bar styles. |
statusBarProgressClassName | String |
False |
CSS class name to override default status bar progress styles. |
Prop | Type | Required | Description |
---|---|---|---|
render | Function |
True |
Function to render the step content. Receives WizardFramework object as param. |
Check sample code here
Live preview here
Nicolás Martínez - nmartinezb3