UNPKG

preact-arco-design

Version:

Arco Design React UI Library.

81 lines (71 loc) 2.83 kB
var __assign = this && this.__assign || function () { __assign = Object.assign || function (t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } } return t; }; return __assign.apply(this, arguments); }; import React, { forwardRef, useContext } from "preact/compat"; import cs from "../_util/classNames"; import { ConfigContext } from "../ConfigProvider"; import { isString, isObject } from "../_util/is"; import useMergeProps from "../_util/hooks/useMergeProps"; var defaultAlign = { datetime: 'left', actions: 'left' }; var defaultProps = { align: 'left' }; function Comment(baseProps, ref) { var _a; var _b = useContext(ConfigContext), getPrefixCls = _b.getPrefixCls, componentConfig = _b.componentConfig, rtl = _b.rtl; var props = useMergeProps(baseProps, defaultProps, componentConfig === null || componentConfig === void 0 ? void 0 : componentConfig.Comment); var prefixCls = getPrefixCls('comment'); var actions = props.actions, author = props.author, avatar = props.avatar, content = props.content, datetime = props.datetime; var align = __assign(__assign({}, defaultAlign), isObject(props.align) ? props.align : { datetime: props.align, actions: props.align }); return React.createElement("div", { ref: ref, className: cs("".concat(prefixCls), (_a = {}, _a["".concat(prefixCls, "-rtl")] = rtl, _a), props.className), style: props.style }, avatar && React.createElement("div", { className: cs("".concat(prefixCls, "-avatar")) }, isString(avatar) ? React.createElement("img", { src: avatar, alt: "comment-avatar" }) : avatar), React.createElement("div", { className: "".concat(prefixCls, "-inner") }, React.createElement("div", { className: "".concat(prefixCls, "-inner-content") }, (author || datetime) && React.createElement("div", { className: "".concat(prefixCls, "-title ").concat(prefixCls, "-title-align-").concat(align.datetime) }, author && React.createElement("span", { className: "".concat(prefixCls, "-author") }, author), datetime && React.createElement("span", { className: "".concat(prefixCls, "-datetime") }, datetime)), content && React.createElement("div", { className: "".concat(prefixCls, "-content") }, content), actions && React.createElement("div", { className: "".concat(prefixCls, "-actions ").concat(prefixCls, "-actions-align-").concat(align.actions) }, actions)), props.children && React.createElement("div", { className: "".concat(prefixCls, "-inner-comment") }, props.children))); } var CommentRef = forwardRef(Comment); CommentRef.displayName = 'Comment'; export default CommentRef;