@massds/mayflower-react
Version:
React versions of Mayflower design system UI components
86 lines (71 loc) • 2.71 kB
JavaScript
;
exports.__esModule = true;
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var UnorderedList = function UnorderedList(props) {
return subList(props);
};
UnorderedList.propTypes = {
/** The text displayed. */
sublist: _propTypes["default"].arrayOf(_propTypes["default"].shape({
text: _propTypes["default"].string.required,
sublist: _propTypes["default"].arrayOf(_propTypes["default"].shape({
text: _propTypes["default"].string.required
}))
}))
};
UnorderedList.defaultProps = {
sublist: [{
text: 'This is a list item in an unordered list'
}, {
text: 'An unordered list is a list in which the sequence of items is not important. Sometimes, an unordered list is a bulleted list. And this is a long list item in an unordered list that can wrap onto a new line.'
}, {
text: 'Lists can be nested inside of each other',
sublist: [{
text: 'This is a nested list item'
}, {
text: 'This is another nested list item in an unordered list'
}]
}, {
text: 'This is the last list item'
}]
};
var listItem = function listItem(props, itemIndex, ulIndex) {
var raw = {
__html: props.text
};
var key = "li." + ulIndex + "." + itemIndex;
/* eslint-disable-next-line react/no-danger */
return /*#__PURE__*/_react["default"].createElement("li", {
key: key,
dangerouslySetInnerHTML: raw
});
};
listItem.propTypes = process.env.NODE_ENV !== "production" ? {
text: _propTypes["default"].string
} : {};
var subList = function subList(props) {
var newProps = _extends({}, props);
if (!Object.prototype.hasOwnProperty.call(newProps, 'ulIndex')) {
newProps.ulIndex = 0;
}
var ulId = "ul." + newProps.ulIndex;
newProps.ulIndex += 1;
var list = newProps.sublist;
return /*#__PURE__*/_react["default"].createElement("ul", {
key: ulId
}, list && list.map(function (item, itemIndex) {
if (item.sublist) {
var subitem = [listItem(item, itemIndex, ulId)];
subitem.push(subList(item));
return subitem;
}
return listItem(item, itemIndex, ulId);
}));
};
var _default = UnorderedList;
exports["default"] = _default;
module.exports = exports.default;