UNPKG

@helpscout/hsds-react

Version:

React component library for Help Scout's Design System

67 lines (51 loc) 2.19 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.getComponentKey = exports.getComponentName = exports.CHAT_TYPE = exports.CONTROL_TYPE = exports.CARD_TYPE = void 0; var _react = _interopRequireDefault(require("react")); var _getComponentName = _interopRequireDefault(require("@helpscout/react-utils/dist/getComponentName")); var _lodash = _interopRequireDefault(require("lodash.isnil")); var _lodash2 = _interopRequireDefault(require("lodash.isplainobject")); /* istanbul ignore file */ var CARD_TYPE = ['ArticleCard', 'Card']; exports.CARD_TYPE = CARD_TYPE; var CONTROL_TYPE = ['Button', 'CopyButton', 'Input', 'Input.AddOn', 'Select']; exports.CONTROL_TYPE = CONTROL_TYPE; var CHAT_TYPE = ['MessageAction', 'MessageAttachment', 'MessageChat', 'MessageContent', 'MessageEmbed', 'MessageMedia', 'MessageQuestion']; /** * Retrieves the internal Blue component namespace/key. * * @param {React.Component} Component The component. * @returns {string} The namespace value. */ exports.CHAT_TYPE = CHAT_TYPE; var getComponentName = function getComponentName(Component) { return (0, _getComponentName.default)(Component); }; /** * Attempts to retrieve a React key from a child when iterating. * @param {React.Component} Component The component. * @param {number | string} index The iterating index value. * @param {string} fallback A fallback value. * @returns {string} The React cnild key. */ exports.getComponentName = getComponentName; var getComponentKey = function getComponentKey(Component, index, fallback) { if (! /*#__PURE__*/_react.default.isValidElement(Component) && !(0, _lodash2.default)(Component)) { return undefined; } var key; if (Component.props && Component.props.id) { key = Component.props.id; } else if (!(0, _lodash.default)(Component.key)) { key = Component.key; } else if (!(0, _lodash.default)(fallback)) { key = fallback; } else if (!(0, _lodash.default)(index)) { key = "unsafeComponentKey-" + index; } else { key = Component.key || undefined; } return key; }; exports.getComponentKey = getComponentKey;