import { useState } from 'react' import { useNavigate } from 'react-router-dom' import { Heart, MessageCircle, MoreVertical } from 'lucide-react' import { likePost, commentPost, deletePost } from '../utils/api' import { hapticFeedback, showConfirm } from '../utils/telegram' import PostMenu from './PostMenu' import CommentsModal from './CommentsModal' import './PostCard.css' const TAG_COLORS = { furry: '#FF8A33', anime: '#4A90E2', other: '#A0A0A0' } const TAG_NAMES = { furry: 'Furry', anime: 'Anime', other: 'Other' } export default function PostCard({ post, currentUser, onUpdate }) { const navigate = useNavigate() const [liked, setLiked] = useState(post.likes.includes(currentUser.id)) const [likesCount, setLikesCount] = useState(post.likes.length) const [showMenu, setShowMenu] = useState(false) const [showComments, setShowComments] = useState(false) const handleLike = async () => { try { hapticFeedback('light') const result = await likePost(post._id) setLiked(result.liked) setLikesCount(result.likes) if (result.liked) { hapticFeedback('success') } } catch (error) { console.error('Ошибка лайка:', error) } } const handleDelete = async () => { const confirmed = await showConfirm('Удалить этот пост?') if (confirmed) { try { await deletePost(post._id) hapticFeedback('success') onUpdate() } catch (error) { console.error('Ошибка удаления:', error) } } } const formatDate = (date) => { const d = new Date(date) return d.toLocaleDateString('ru-RU', { day: 'numeric', month: 'short' }) } const goToProfile = () => { navigate(`/user/${post.author._id}`) } return (