import React, { useCallback, useRef } from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import { useTranslation } from 'react-i18next'; import { Comment } from 'semantic-ui-react'; import { Markdown } from '../../../lib/custom-ui'; import CommentEdit from './CommentEdit'; import User from '../../User'; import DeletePopup from '../../DeletePopup'; import styles from './ItemComment.module.scss'; const ItemComment = React.memo( ({ data, createdAt, isPersisted, user, canEdit, onUpdate, onDelete }) => { const [t] = useTranslation(); const commentEdit = useRef(null); const handleEditClick = useCallback(() => { commentEdit.current.open(); }, []); return (
{user.name} {t('format:longDateTime', { postProcess: 'formatDate', value: createdAt, })}
<>
{data.text}
{canEdit && ( )}
); }, ); ItemComment.propTypes = { data: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types createdAt: PropTypes.instanceOf(Date).isRequired, isPersisted: PropTypes.bool.isRequired, user: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types canEdit: PropTypes.bool.isRequired, onUpdate: PropTypes.func.isRequired, onDelete: PropTypes.func.isRequired, }; export default ItemComment;