UNPKG

@helpscout/hsds-react

Version:

React component library for Help Scout's Design System

128 lines (96 loc) 4.04 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = exports.Step = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _getValidProps = _interopRequireDefault(require("@helpscout/react-utils/dist/getValidProps")); var _Text = _interopRequireDefault(require("../Text")); var _classnames = _interopRequireDefault(require("classnames")); var _Stepper = _interopRequireDefault(require("./Stepper.Progress")); var _Stepper2 = require("./Stepper.css"); var _jsxRuntime = require("react/jsx-runtime"); var Step = /*#__PURE__*/function (_React$PureComponent) { (0, _inheritsLoose2.default)(Step, _React$PureComponent); function Step() { var _this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this; _this.handleOnClick = function (event) { if (!_this.props.isClickable) return; _this.props.onClick(event, _this.props.index); }; return _this; } var _proto = Step.prototype; _proto.getClassName = function getClassName() { var _this$props = this.props, className = _this$props.className, isActive = _this$props.isActive, isClickable = _this$props.isClickable; return (0, _classnames.default)(Step.className, isClickable && 'is-clickable', isActive && 'is-active', className); }; _proto.render = function render() { var _this$props2 = this.props, children = _this$props2.children, innerRef = _this$props2.innerRef, isActive = _this$props2.isActive, title = _this$props2.title, rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props2, ["children", "innerRef", "isActive", "title"]); return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Stepper2.StepUI, (0, _extends2.default)({}, (0, _getValidProps.default)(rest), { className: this.getClassName(), onClick: this.handleOnClick, ref: innerRef, title: title, children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, { className: "c-StepperStepTitle", size: "14", children: title }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Stepper2.GhostTitleUI, { size: "14", "aria-hidden": true, children: title }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Stepper2.CircleUI, { className: "c-StepperStepCircle", isActive: isActive }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Stepper2.LineUI, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Stepper.default, { isActive: isActive })] })); }; return Step; }(_react.default.PureComponent); exports.Step = Step; Step.className = 'c-StepperStep'; function noop() {} Step.defaultProps = { 'data-cy': 'Step', isActive: false, isClickable: false, index: 0, innerRef: noop, onClick: noop }; Step.propTypes = { /** The HTML title of the Step. */ title: _propTypes.default.string, /** The unique ID of the Step. Used for mapping. */ id: _propTypes.default.string, /** The className of the component. */ className: _propTypes.default.string, index: _propTypes.default.number, /** Whether the current step is active */ isActive: _propTypes.default.bool, /** Enables clicking for the steps. */ isClickable: _propTypes.default.bool, /** Callback when a step is clicked. Enabled by `isClickable`. */ onClick: _propTypes.default.func, innerRef: _propTypes.default.func }; var _default = Step; exports.default = _default;