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