import { Link } from 'react-router-dom' import { Pencil, MessageSquare, Trash2 } from 'lucide-react' import type { Portfolio } from '../types/portfolio' import { formatPortfolioCardDate } from '../services/portfolioService' import { textLocaleAttrs } from '../utils/textLocale' import { Tooltip } from './Tooltip' import cardStyles from './PortfolioCard.module.css' import controlStyles from './ProductCard.module.css' interface PortfolioCardProps { portfolio: Portfolio commentCount: number onEdit: (id: string) => void onComments: (id: string) => void onRemove: (id: string) => void } export function PortfolioCard({ portfolio, commentCount, onEdit, onComments, onRemove, }: PortfolioCardProps) { const publishDate = formatPortfolioCardDate(portfolio.publishedAt ?? portfolio.createdAt) const titleFa = (portfolio.titleFa || portfolio.title || '').trim() const titleEn = (portfolio.titleEn || '').trim() const showBothTitles = Boolean(titleFa && titleEn) const showAbstract = !showBothTitles const abstractLocale = textLocaleAttrs(portfolio.abstract) const hasAbstract = Boolean(portfolio.abstract?.trim()) return (
{portfolio.titleImageUrl ? ( {titleFa ) : (
{titleFa ? (

{titleFa}

) : null} {titleEn ? (

{titleEn}

) : null} {showAbstract ? ( hasAbstract ? (

{portfolio.abstract}

) : (

No summary yet.

) ) : null}

{portfolio.categoryName ? ( <> {portfolio.categoryName} ยท ) : null} {publishDate}

) }