import React from 'react' import { Link } from 'react-router-dom' import { ArrowLeftIcon, ClockIcon } from 'lucide-react' import { PageHero } from '../components/PageHero' import { Reveal } from '../components/Reveal' import { ArticleCard } from '../components/ArticleCard' import { Newsletter } from '../components/home/Newsletter' import { useSite } from '../api' import { useLang } from '../i18n/lang' import { EditableItem } from '../admin/Editable' import { useAdmin } from '../admin/AdminContext' import { formatJalali, formatEnDate } from '../utils/date' import { toPersianDigits } from '../utils/digits' import { PlusIcon } from 'lucide-react' function DraftBadge({ className = '' }: { className?: string }) { const { t } = useLang() return ( {t('draft')} ) } /** میانبر ویرایش پیشنویس برای هر کارمند واردشده — creator هم بدون حالت ویرایش ادمین */ function DraftEditLink({ id, className = '' }: { id: number; className?: string }) { const { lang } = useLang() const { syncEditLang } = useAdmin() return ( { // ویرایشگر با زبان همین صفحه باز شود — کلیک از وبلاگ انگلیسی نباید // مقاله را در حالت فارسی باز کند (و «دیدن در سایت» را به وبلاگ فارسی ببرد) syncEditLang(lang) localStorage.setItem(`aramesh_write_lang_${id}`, lang) }} className={`border border-copper/60 bg-ink/90 px-2.5 py-1 text-xs font-bold text-copper backdrop-blur transition-colors duration-200 hover:bg-copper hover:text-char ${className}`} > {lang === 'en' ? 'Edit draft' : 'ویرایش پیشنویس'} ) } export function Blog() { const { articles } = useSite() const { t, href, lang } = useLang() const { isEditMode, isAuthenticated } = useAdmin() // دکمه «نوشتن مقاله جدید» فقط در حالت ویرایش ادمین دیده میشود const writeButton = isEditMode ? ( {t('writeNewArticle')} ) : null // حالت خالی — وبلاگ بدون مقاله نباید کرش کند if (articles.length === 0) { return ( <> {t('blogEmpty')} {t('blogEmptyText')} {writeButton} > ) } const [featured, ...rest] = articles return ( <> {writeButton} {t('featuredArticle')} — {featured.category} {featured.status === 'draft' && ( )} {featured.title} {featured.excerpt} {lang === 'en' ? formatEnDate(featured.date) : formatJalali(featured.date)} {lang === 'en' ? featured.read : toPersianDigits(featured.read)} {t('readMore')} {isAuthenticated && featured.status === 'draft' && ( )} {rest.map((article, i) => ( {article.status === 'draft' && ( )} {isAuthenticated && article.status === 'draft' && ( )} ))} > ) }
{t('blogEmptyText')}
{t('featuredArticle')} — {featured.category} {featured.status === 'draft' && ( )}
{featured.excerpt}