import React, { FC, useCallback } from 'react'; import { IMessage } from '~/redux/types'; import styles from './styles.module.scss'; import { formatText, getPrettyDate, getURL } from '~/utils/dom'; import { PRESETS } from '~/constants/urls'; import classNames from 'classnames'; import { Group } from '~/components/containers/Group'; import { CommentMenu } from '~/components/comment/CommentMenu'; import { MessageForm } from '~/components/profile/MessageForm'; import { Filler } from '~/components/containers/Filler'; import { Button } from '~/components/input/Button'; import markdown from '~/styles/common/markdown.module.scss'; interface IProps { message: IMessage; incoming: boolean; onEdit: (id: number) => void; onDelete: (id: number) => void; onRestore: (id: number) => void; onCancelEdit: () => void; isEditing: boolean; } const Message: FC = ({ message, incoming, onEdit, onDelete, isEditing, onCancelEdit, onRestore, }) => { const onEditClicked = useCallback(() => onEdit(message.id), [onEdit, message.id]); const onDeleteClicked = useCallback(() => onDelete(message.id), [onDelete, message.id]); const onRestoreClicked = useCallback(() => onRestore(message.id), [onRestore, message.id]); if (message.deleted_at) { return (
Сообщение удалено
); } return (
{isEditing ? (
) : (
{!incoming && }
)}
{getPrettyDate(message.created_at)}
); }; export { Message };