// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import React from 'react' import {FormattedMessage, injectIntl, IntlShape} from 'react-intl' import {IBlock} from '../blocks/block' import {MutableCommentBlock} from '../blocks/commentBlock' import mutator from '../mutator' import {Utils} from '../utils' import Button from '../widgets/buttons/button' import Comment from './comment' import './commentsList.scss' import {MarkdownEditor} from './markdownEditor' type Props = { comments: readonly IBlock[] cardId: string intl: IntlShape } type State = { newComment: string inputFocused: boolean } class CommentsList extends React.Component { public constructor(props: Props) { super(props) this.state = { newComment: '', inputFocused: false, } } public shouldComponentUpdate() { return true } private sendComment = () => { const {cardId} = this.props Utils.assertValue(cardId) const block = new MutableCommentBlock({parentId: cardId, title: this.state.newComment}) mutator.insertBlock(block, 'add comment') this.setState({newComment: ''}) } public render(): JSX.Element { const {comments, intl} = this.props // TODO: Replace this placeholder const username = 'John Smith' const userImageUrl = 'data:image/svg+xml,' return (
{comments.map((comment) => ( ))} {/* New comment */}
{ if (this.state.newComment !== value) { this.setState({newComment: value}) } }} /> {this.state.newComment && }
) } } export default injectIntl(CommentsList)