UNPKG

react-cm-ui

Version:
119 lines (104 loc) 4.69 kB
"use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _lodash = require("lodash"); var _classnames = _interopRequireDefault(require("classnames")); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireWildcard(require("react")); var _keyCode = _interopRequireDefault(require("../../global/keyCode.js")); var _makeStyles = _interopRequireDefault(require("../../styles/makeStyles.js")); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var propTypes = { children: _propTypes["default"].node, classes: _propTypes["default"].shape({ root: _propTypes["default"].string }), className: _propTypes["default"].string, disable: _propTypes["default"].bool, id: _propTypes["default"].string, onClick: _propTypes["default"].func, onKeyDown: _propTypes["default"].func, style: _propTypes["default"].shape({}), tabIndex: _propTypes["default"].number }; var defaultProps = { children: null, classes: null, className: null, disable: false, id: null, onClick: null, onKeyDown: null, tabIndex: -1, style: {} }; var useStyles = (0, _makeStyles["default"])(function (_ref) { var palette = _ref.palette, typography = _ref.typography; return { isDisabled: {}, root: { color: palette.cyan[500], cursor: 'pointer', fontWeight: typography.fontWeightMedium, textDecoration: 'none', '&$isDisabled': { color: palette.text.disable, cursor: 'default' }, '&:focus': { boxShadow: "0 0 0 1px ".concat(palette.active.main) } } }; }); function A(props) { var children = props.children, className = props.className, id = props.id, isDisabled = props.disable, onClickProp = props.onClick, onKeyDownProp = props.onKeyDown, style = props.style, tabIndex = props.tabIndex; var classes = useStyles(props); var onClick = (0, _react.useCallback)(function (event) { if ((0, _lodash.isFunction)(onClickProp) && !isDisabled) { onClickProp(event); } }, [onClickProp, isDisabled]); var onKeyDown = (0, _react.useCallback)(function (event) { if (!isDisabled) { if ((0, _lodash.isFunction)(onKeyDownProp)) { onKeyDownProp(event); } else if (event.keyCode === _keyCode["default"].Enter) { onClick(); } } }, [isDisabled, onClick, onKeyDownProp]); var onMouseDown = (0, _react.useCallback)(function (event) { event.preventDefault(); }, []); var bemBlockName = 'a'; var rootClasses = (0, _classnames["default"])('ui', bemBlockName, classes.root, className, _defineProperty({}, classes.isDisabled, isDisabled)); return /*#__PURE__*/_react["default"].createElement("span", { className: rootClasses, id: id, onClick: onClick, onKeyDown: onKeyDown, onMouseDown: onMouseDown, role: "button", style: style, tabIndex: tabIndex }, children); } A.propTypes = propTypes; A.defaultProps = defaultProps; var _default = A; exports["default"] = _default;