import "./stepper.scss"; import * as React from "react"; import { cssNames } from "../../utils"; interface Props extends React.HTMLProps { step: number; steps: Step[]; } interface Step { title?: string; } export class Stepper extends React.Component { render() { const { className, steps, ...props } = this.props; const stepsCount = steps.length; let { step } = this.props; step = Math.min(Math.max(1, step), stepsCount); return (
{steps.map(({ title }, i) => { const stepNumber = i + 1; const isLast = i === stepsCount - 1; const stepClass = { done: stepNumber < step, active: stepNumber === step }; return (
{!isLast ? : null}
{stepNumber}
{title}
); })}
); } }