import PropsTypes from '../_util/vue-types' import { initDefaultProps, getComponentFromProp } from '../_util/props-util' export const CommentProps = { actions: PropsTypes.array, /** The element to display as the comment author. */ author: PropsTypes.any, /** The element to display as the comment avatar - generally an antd Avatar */ avatar: PropsTypes.any, /** The main content of the comment */ content: PropsTypes.any, /** Comment prefix defaults to '.ant-comment' */ prefixCls: PropsTypes.string, /** A datetime element containing the time to be displayed */ datetime: PropsTypes.any, } const Comment = { name: 'AComment', props: initDefaultProps(CommentProps, { prefixCls: 'ant-comment', }), methods: { getAction (actions) { if (!actions || !actions.length) { return null } const actionList = actions.map((action, index) =>
  • {action}
  • ) return actionList }, renderNested (children) { const { prefixCls } = this.$props return
    {children}
    }, }, render () { const { prefixCls, } = this.$props const actions = getComponentFromProp(this, 'actions') const author = getComponentFromProp(this, 'author') const avatar = getComponentFromProp(this, 'avatar') const content = getComponentFromProp(this, 'content') const datetime = getComponentFromProp(this, 'datetime') const avatarDom = (
    {typeof avatar === 'string' ? : avatar}
    ) const actionDom = actions && actions.length ? ( ) : null const authorContent = (
    {author && {author}} {datetime && {datetime}}
    ) const contentDom = (
    {authorContent}
    {content}
    {actionDom}
    ) const comment = (
    {avatarDom} {contentDom}
    ) const children = this.$slots.default return (
    {comment} {children ? this.renderNested(children) : null}
    ) }, } /* istanbul ignore next */ Comment.install = function (Vue) { Vue.component(Comment.name, Comment) } export default Comment