preact-arco-design
Version:
Arco Design React UI Library.
81 lines (71 loc) • 2.83 kB
JavaScript
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;