UNPKG

cuz

Version:

Front-end modular development kit.

86 lines (64 loc) 2.38 kB
'use strict'; var _objectWithoutProperties = require('babel-runtime/helpers/object-without-properties')['default']; var _extends = require('babel-runtime/helpers/extends')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; exports.__esModule = true; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactBootstrap = require('react-bootstrap'); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); function getActiveStepFromChildren(children) { var activeStep = 0; _reactBootstrap.utils.ValidComponentChildren.forEach(children, function (child, index) { if (child.props.active === true) { activeStep = index; } }); return activeStep; } var Steps = _react2['default'].createClass({ displayName: 'Steps', propTypes: { children: _react2['default'].PropTypes.any, onSelect: _react2['default'].PropTypes.func, defaultActiveStep: _react2['default'].PropTypes.number, activeStep: _react2['default'].PropTypes.number, className: _react2['default'].PropTypes.string }, getInitialState: function getInitialState() { var activeStep = this.props.defaultActiveStep || getActiveStepFromChildren(this.props.children); return { activeStep: activeStep }; }, onSelect: function onSelect(step) { var onSelect = this.props.onSelect; this.setState({ activeStep: step }); if (onSelect) onSelect(step); }, renderStep: function renderStep(child, index) { var activeStep = this.props.activeStep || this.state.activeStep; return _react.cloneElement(child, { active: index + 1 === activeStep, index: child.props.index || index + 1, onSelect: this.onSelect }); }, render: function render() { var _props = this.props; var children = _props.children; var className = _props.className; var props = _objectWithoutProperties(_props, ['children', 'className']); return _react2['default'].createElement( 'ul', _extends({}, props, { className: _classnames2['default']('wizard-steps', 'form-wizard', 'clearfix', className) }), _reactBootstrap.utils.ValidComponentChildren.map(children, this.renderStep) ); } }); exports['default'] = Steps; module.exports = exports['default'];