semantic-ui-react
Version:
The official Semantic-UI-React integration.
106 lines (79 loc) • 3.63 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _without2 = _interopRequireDefault(require("lodash/without"));
var _map2 = _interopRequireDefault(require("lodash/map"));
var _clsx = _interopRequireDefault(require("clsx"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireDefault(require("react"));
var _lib = require("../../lib");
var _FeedContent = _interopRequireDefault(require("./FeedContent"));
var _FeedDate = _interopRequireDefault(require("./FeedDate"));
var _FeedEvent = _interopRequireDefault(require("./FeedEvent"));
var _FeedExtra = _interopRequireDefault(require("./FeedExtra"));
var _FeedLabel = _interopRequireDefault(require("./FeedLabel"));
var _FeedLike = _interopRequireDefault(require("./FeedLike"));
var _FeedMeta = _interopRequireDefault(require("./FeedMeta"));
var _FeedSummary = _interopRequireDefault(require("./FeedSummary"));
var _FeedUser = _interopRequireDefault(require("./FeedUser"));
/**
* A feed presents user activity chronologically.
*/
function Feed(props) {
var children = props.children,
className = props.className,
events = props.events,
size = props.size;
var classes = (0, _clsx.default)('ui', size, 'feed', className);
var rest = (0, _lib.getUnhandledProps)(Feed, props);
var ElementType = (0, _lib.getElementType)(Feed, props);
if (!_lib.childrenUtils.isNil(children)) {
return /*#__PURE__*/_react.default.createElement(ElementType, (0, _extends2.default)({}, rest, {
className: classes
}), children);
}
var eventElements = (0, _map2.default)(events, function (eventProps) {
var childKey = eventProps.childKey,
date = eventProps.date,
meta = eventProps.meta,
summary = eventProps.summary,
eventData = (0, _objectWithoutPropertiesLoose2.default)(eventProps, ["childKey", "date", "meta", "summary"]);
var finalKey = childKey != null ? childKey : [date, meta, summary].join('-');
return /*#__PURE__*/_react.default.createElement(_FeedEvent.default, (0, _extends2.default)({
date: date,
key: finalKey,
meta: meta,
summary: summary
}, eventData));
});
return /*#__PURE__*/_react.default.createElement(ElementType, (0, _extends2.default)({}, rest, {
className: classes
}), eventElements);
}
Feed.handledProps = ["as", "children", "className", "events", "size"];
Feed.propTypes = process.env.NODE_ENV !== "production" ? {
/** An element type to render as (string or function). */
as: _propTypes.default.elementType,
/** Primary content. */
children: _propTypes.default.node,
/** Additional classes. */
className: _propTypes.default.string,
/** Shorthand array of props for FeedEvent. */
events: _lib.customPropTypes.collectionShorthand,
/** A feed can have different sizes. */
size: _propTypes.default.oneOf((0, _without2.default)(_lib.SUI.SIZES, 'mini', 'tiny', 'medium', 'big', 'huge', 'massive'))
} : {};
Feed.Content = _FeedContent.default;
Feed.Date = _FeedDate.default;
Feed.Event = _FeedEvent.default;
Feed.Extra = _FeedExtra.default;
Feed.Label = _FeedLabel.default;
Feed.Like = _FeedLike.default;
Feed.Meta = _FeedMeta.default;
Feed.Summary = _FeedSummary.default;
Feed.User = _FeedUser.default;
var _default = Feed;
exports.default = _default;