Sha256: 7d93f214a00b91703fdad4f4a2519c2b5b6e7ead2e86cfd8680da31c2156a90a

Contents?: true

Size: 1.65 KB

Versions: 6

Compression:

Stored size: 1.65 KB

Contents

/* @flow */

import React from 'react'
import { map } from 'lodash'
import { OverlayTrigger, Tooltip } from 'react-bootstrap'
import classnames from 'classnames'

import Icon from '../Icon/Icon'
import styles from './step_meter.scss'

type States = 'done' | 'started' | 'none'

type Step = {|
  id: number,
  name: string,
  state: States,
|}

type Props = {
  className: string,
  steps: Array<Step>,
  type: string,
}

const StepMeter = ({
  steps,
  type,
  className
}: Props) => {
  const classes = [
    className,
    styles['step-meter'],
    styles[`type-${type}`],
  ]
  return (
    <ul className={classnames(classes)}>
      {
        map(steps, (step, idx) => (
          <Choose>
            <When condition={type == 'simple'}>
              <OverlayTrigger
                  key={idx}
                  overlay={<Tooltip id={`tooltip-step.name`}>{step.name}</Tooltip>}
                  placement="bottom"
                  trigger={['hover', 'focus']}
              >
                <li
                    className={`text-uppercase ${styles[step.state]}`}
                />
              </OverlayTrigger>
            </When>
            <Otherwise>
              <li
                  className={`text-uppercase ${styles[step.state]}`}
                  key={idx}
              >
                <If condition={step.state == 'done'}>
                  <Icon
                      label=""
                      name="check"
                  />
                </If>
                <span>
                  {step.name}
                </span>
              </li>
            </Otherwise>
          </Choose>
        ))
      }
    </ul>
  )
}

export default StepMeter

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
playbook_ui-2.7.2 components/StepMeter/StepMeter.jsx
playbook_ui-2.7.1 components/StepMeter/StepMeter.jsx
playbook_ui-2.7.0 components/StepMeter/StepMeter.jsx
playbook_ui-2.6.0 components/StepMeter/StepMeter.jsx
playbook_ui-2.5.0 components/StepMeter/StepMeter.jsx
nitro_sg-3.0.2 components/StepMeter/StepMeter.jsx