Package Exports
- react-sequence-wrapper
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-sequence-wrapper) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
react-sequence-wrapper
a higher order component decorator providing state management for components that use a sequence of steps, like wizards and other multiple-step user interfaces.
Installation
npm install react-sequence-wrapper --save-devUsage
Here's an example of using sequence decorator with the steps option to wrap a component and provide it with props to implement a basic wizard with forward and backwards navigation.
import React, { Component } from "react";
import { Label, Button } from "react-bootstrap";
import sequence from "./react-sequence-wrapper";
@sequence({
steps: ["Greet", "Compliment", "Leave"]
})
export default class BasicWizard extends Component {
render() {
const {
currentStepIndex,
currentStep,
nextStep,
prevStep,
setStepIndex,
setStep,
isFirstStep,
isLastStep,
steps
} = this.props; //all provided by @sequence
const stepComponents = [
<div>hello world!</div>,
<div>nice shirt!</div>,
<div>goodbye!</div>
];
return (
<div>
<h2>
<Label>
{currentStepIndex + 1}. {currentStep}
</Label>
</h2>
<div>
{stepComponents[currentStepIndex]}
<div id="navigation">
<Button onClick={prevStep} disabled={isFirstStep}>
Back
</Button>
<Button onClick={nextStep} disabled={isLastStep}>
Next
</Button>
</div>
</div>
</div>
);
}
}Dev Dependencies
- babel-cli: Babel command line.
- babel-core: Babel compiler core.
- babel-eslint: Custom parser for ESLint
- babel-preset-es2015: Babel preset for all es2015 plugins.
- babel-preset-react: Babel preset for all React plugins.
- babel-preset-stage-0: Babel preset for stage 0 plugins
- babel-register: babel require hook
- eslint: An AST-based pattern checker for JavaScript.
- eslint-config-rackt: Shareable eslint config for rackt repos
- eslint-plugin-react: React specific linting rules for ESLint
- react: React is a JavaScript library for building user interfaces.
- react-dom: React package for working with the DOM.
- rimraf: A deep deletion module for node (like
rm -rf)
License
MIT