import { Clock, ThumbsUp, MapPin, ThumbsDown } from 'lucide-react'; import { Link, useLocation } from 'react-router-dom'; import { Article, CategoryTitles, CityTitles } from '../types'; import MinutesWord from './Words/MinutesWord'; import { useScrollStore } from '../stores/scrollStore'; interface ArticleCardProps { article: Article; featured?: boolean; } export function ArticleCard({ article, featured = false }: ArticleCardProps) { const location = useLocation(); const setHomeScrollPosition = useScrollStore(state => state.setHomeScrollPosition); const writerAuthors = article.authors .filter(a => a.role === 'WRITER') .sort((a, b) => (a.author.order ?? 0) - (b.author.order ?? 0)); const handleArticleClick = () => { // Сохранить текущее положение скролинга при переходе к статье if (location.pathname === '/') { setHomeScrollPosition(window.scrollY); } }; return (
{article.title}
{CategoryTitles[article.categoryId]} {CityTitles[article.cityId]}
{writerAuthors.map((authorLink) => ( {authorLink.author.displayName} ))}

{writerAuthors.map((a, i) => ( {a.author.displayName} {i < writerAuthors.length - 1 ? ', ' : ''} ))}

{new Date(article.publishedAt).toLocaleDateString('ru-RU', { month: 'long', day: 'numeric', year: 'numeric', })} ·{' '} {article.readTime} чтения

{article.title}

{article.excerpt}

Читать →
{article.likes} {article.dislikes}
); }