import { type FC, useState } from 'react' import { format } from 'date-fns' import { FrownIcon, ThumbsUpIcon } from 'lucide-react' import { Avatar, AvatarImage, AvatarFallback } from '@/components/ui/Avatar' import LikeButton from '@/components/LikeButton' import { type Message } from '@/types' import { Markdown } from '@/components/ui/Markdown' export interface MessageItemProps { data: Message index?: number } const MessageItem: FC = ({ data, index }) => { const [formatData, setFormatData] = useState({ ...data, date: format(data.date, 'yyyy/MM/dd HH:mm:ss') }) const handleLikeChange = (type: 'like' | 'hate', checked: boolean, count: number) => { setFormatData((prev) => { return { ...prev, [`${type}Checked`]: checked, [`${type}Count`]: count } }) } return (
{formatData.username}
{formatData.username}
{formatData.date}
{formatData.body}
handleLikeChange('like', ...args)} count={formatData.likeCount} > handleLikeChange('hate', ...args)} count={formatData.hateCount} >
) } MessageItem.displayName = 'MessageItem' export default MessageItem