react-js-stepper

stepper

Usage no npm install needed!

<script type="module">
  import reactJsStepper from 'https://cdn.skypack.dev/react-js-stepper';
</script>

README

react-js-stepper

[![NPM version][npm-image]][npm-url] [![build status][travis-image]][travis-url] [![npm download][download-image]][download-url]

Steppers display progress through a sequence of logical and numbered steps. They may also be used for navigation

React Stepper Demo

https://pkbadiger.github.io/react-js-stepper/

Installation

The package can be installed via NPM:

npm install react-js-stepper --save

You will need to install and configure sass-loader withing webpack.config.js, since all the styles required for react-js-stepper component is written using css preprocessor "SASS".

Usage

The most basic use of the react-js-stepper can be described with:

import React from 'react';
import ReactDOM from 'react-dom';
import Stepper from 'react-js-stepper'

const steps = [{title: 'Stage - 1'}, {title: 'Stage - 2'}, {title: 'Stage - 3'},]

export default class App extends React.Component{
    constructor(props) {
        super(props);

        this.state = {
            activeStep: 1,
        }
    }

    handleOnClickStepper = (step) => {
        this.setState({activeStep: step});
    }

    handleOnClickNext = () => {
        let nextStep = this.state.activeStep + 1;
        this.setState({activeStep: nextStep})
    }

    handleOnClickBack = () => {
        let prevStep = this.state.activeStep - 1;
        this.setState({activeStep:prevStep})
    }

    render(){
        return(
            <React.Fragment>
                <Stepper 
                    steps={steps} 
                    activeStep={this.state.activeStep}
                    onSelect={this.handleOnClickStepper}
                    showNumber={false} 
                />

                <div style={{marginTop: '40px'}}>
                {this.state.activeStep === 1 ? <div> You are in Stage {this.state.activeStep} </div> : 
                 this.state.activeStep === 2 ? <div> You are in Stage {this.state.activeStep} </div> :
                 <div> You are in Stage {this.state.activeStep} </div>
                }
                </div>

                <div style={{marginTop: '40px'}}>
                    <input type="button" value={this.state.activeStep === steps.length ? 'Finish' : 'Next'} 
                            onClick={this.state.activeStep === steps.length ? null : this.handleOnClickNext}/>
                    {this.state.activeStep ===1 ? '' : <input type="button" value="Back" onClick={this.handleOnClickBack} /> }
                </div>
            </React.Fragment>
        )
    }
}

Configuration

The most basic use of the react-js-stepper can be described with:

    <Stepper 
        steps={steps} 
        activeStep={this.state.activeStep}
        onSelect={this.handleOnClickStepper}
        showNumber={false} 
    />

steps array of objects with property name called title passed to stepper to display number of steps or stages.

activeStep is a number passed to stepper to highlight or show active step among list of steps.

onSelect You can use onSelect event handler which fires each time when you click on each step.

showNumber is a boolean, this is to enable/disable step number within circle.

Props

Name Type Default Description
steps array of objects steps = [{title: 'Stage - 1'}, {title: 'Stage - 2'}, {title: 'Stage - 3'},] Constants passed to display stepper
activeStep number 2
onSelect func callback fired when select stepper
showNumber boolean false To enable/disable step/stage number within circle