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 EditComment from './EditComment'; import User from '../../User'; import DeletePopup from '../../DeletePopup'; import styles from './ItemComment.module.css'; const ItemComment = React.memo( ({ data, createdAt, isPersisted, user, isEditable, onUpdate, onDelete }) => { const [t] = useTranslation(); const editComment = useRef(null); const handleEditClick = useCallback(() => { editComment.current.open(); }, []); return (
{user.name} {t('format:longDateTime', { postProcess: 'formatDate', value: createdAt, })}
<> {user.isCurrent && ( )} {(user.isCurrent || isEditable) && ( )}
); }, ); 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 isEditable: PropTypes.bool.isRequired, onUpdate: PropTypes.func.isRequired, onDelete: PropTypes.func.isRequired, }; export default ItemComment;