@helpscout/hsds-react
Version:
React component library for Help Scout's Design System
128 lines (96 loc) • 4.04 kB
JavaScript
"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;