fix(en): هشت اصلاح سایت انگلیسی — دکمهٔ هیرو با ps منطقی، پیوند درباره ما زیر تیتر، justify متن درباره ما، متای مقاله (نویسنده/تاریخ/زمان مطالعه) دوزبانه، تیتر فهرست مطالب، H1 انگلیسی در ادیتور + چک‌لیست سئو زبان‌آگاه، بازگشت به وبلاگ با حفظ زبان، دسته‌بندی انگلیسی

This commit is contained in:
aramesh-site deploy
2026-10-01 16:54:44 +00:00
parent d56dff2a2f
commit 632edaf081
7 changed files with 74 additions and 33 deletions
+33 -22
View File
@@ -327,7 +327,7 @@ export function ArticleWritePage() {
setDeleting(true)
await runSave(async () => {
await adminApi.remove('articles', createdId)
navigate('/blog')
navigate(`${editLang === 'en' ? '/en' : ''}/blog`)
})
setDeleting(false)
}
@@ -353,7 +353,7 @@ export function ArticleWritePage() {
<header className="sticky top-0 z-40 border-b border-ivory/10 bg-ink/95 backdrop-blur-md">
<div className="mx-auto flex max-w-4xl items-center justify-between gap-4 px-6 py-3">
<Link
to="/blog"
to={`${editLang === 'en' ? '/en' : ''}/blog`}
data-admin-link
className="flex items-center gap-2 text-sm font-light text-ivory/70 transition-colors hover:text-copper"
>
@@ -451,7 +451,7 @@ export function ArticleWritePage() {
render={({ field }) => (
<input
type="text"
{...field}
value={editLang === 'en' ? String(draft.title_en ?? '') : field.value}
onChange={(event) => {
field.onChange(event.target.value)
queueSave({ [suf('title')]: event.target.value })
@@ -548,10 +548,10 @@ export function ArticleWritePage() {
{/* چکیده و متادیتا */}
<SeoChecklist
input={{
title: draft.title,
title: (editLang === 'en' ? draft.title_en : draft.title) ?? '',
slug: draft.slug,
excerpt: draft.meta_description || draft.excerpt,
body: draft.body,
excerpt: draft.meta_description || (editLang === 'en' ? draft.excerpt_en : draft.excerpt) || '',
body: (editLang === 'en' ? draft.body_en : draft.body) ?? draft.body,
keyphrase: draft.seo_keyphrase,
}}
/>
@@ -594,23 +594,34 @@ export function ArticleWritePage() {
<div className="grid grid-cols-1 gap-5 lg:grid-cols-2">
<div>
<label className="text-xs font-light text-ivory/50">دسته‌بندی مقاله (Category)</label>
<label className="text-xs font-light text-ivory/50">
دسته‌بندی مقاله (Category){editLang === 'en' ? ' — نسخه انگلیسی' : ''}
</label>
<div className="mt-2">
{/* تک‌انتخابی: ورودی/خروجی Controller یک {value,label} یا null است */}
<Controller
name="category"
control={control}
render={({ field }) => (
<CategorySelect
value={field.value}
options={ARTICLE_CATEGORIES}
onChange={(option) => {
field.onChange(option)
queueSave({ category: categoryValue(option) })
}}
/>
)}
/>
{editLang === 'en' ? (
<input
type="text"
{...textField('category_en')}
placeholder={draft.category ? `English category (فارسی: ${draft.category})…` : 'English category…'}
className="w-full border border-ivory/15 bg-char px-3 py-2 text-sm font-light text-ivory focus:border-copper focus:outline-none"
/>
) : (
/* تک‌انتخابی: ورودی/خروجی Controller یک {value,label} یا null است */
<Controller
name="category"
control={control}
render={({ field }) => (
<CategorySelect
value={field.value}
options={ARTICLE_CATEGORIES}
onChange={(option) => {
field.onChange(option)
queueSave({ category: categoryValue(option) })
}}
/>
)}
/>
)}
</div>
</div>
<div>