import Post from './Post'; import classList from '../../common/utils/classList'; import PostUser from './PostUser'; import PostMeta from './PostMeta'; import PostEdited from './PostEdited'; import EditPostComposer from './EditPostComposer'; import ItemList from '../../common/utils/ItemList'; import listItems from '../../common/helpers/listItems'; import Button from '../../common/components/Button'; import ComposerPostPreview from './ComposerPostPreview'; /** * The `CommentPost` component displays a standard `comment`-typed post. This * includes a number of item lists (controls, header, and footer) surrounding * the post's HTML content. * * ### Attrs * * - `post` */ export default class CommentPost extends Post { oninit(vnode) { super.oninit(vnode); /** * If the post has been hidden, then this flag determines whether or not its * content has been expanded. * * @type {Boolean} */ this.revealContent = false; /** * Whether or not the user hover card inside of PostUser is visible. * The property must be managed in CommentPost to be able to use it in the subtree check * * @type {Boolean} */ this.cardVisible = false; this.subtree.check( () => this.cardVisible, () => this.isEditing(), () => this.revealContent ); } content() { return super.content().concat([
,
{this.isEditing() ? : m.trust(this.attrs.post.contentHtml())}
, ]); } onupdate(vnode) { super.onupdate(); const contentHtml = this.isEditing() ? '' : this.attrs.post.contentHtml(); // If the post content has changed since the last render, we'll run through // all of the