fix(admin): صفحهٔ ویرایش پروژه با body/body_en غیرآرایه سفید میشد — asLines همهٔ مقادیر را امن میکند (رفع پروژههای تازهساخته)
This commit is contained in:
@@ -56,6 +56,13 @@ const EMPTY: ProjectDraft = {
|
||||
image: '', gallery: [],
|
||||
}
|
||||
|
||||
/** body ممکن است از ردیفهای قدیمی/ناقص غیرآرایه باشد (مثلاً {} یا رشته) — همیشه آرایهٔ رشته */
|
||||
function asLines(value: unknown): string[] {
|
||||
if (Array.isArray(value)) return value.map((line) => String(line))
|
||||
if (typeof value === 'string') return value.split('\n')
|
||||
return []
|
||||
}
|
||||
|
||||
const INPUT =
|
||||
'w-full border border-ivory/15 bg-char px-3 py-2 text-sm font-light text-ivory placeholder:text-ivory/30 focus:border-copper focus:outline-none'
|
||||
|
||||
@@ -313,11 +320,11 @@ export function ProjectWritePage() {
|
||||
<Pair
|
||||
label="متن پروژه — هر پاراگراف یک خط"
|
||||
fa={{
|
||||
value: draft.body.join('\n'),
|
||||
value: asLines(draft.body).join('\n'),
|
||||
onChange: (v) => set('body', v.split('\n')),
|
||||
}}
|
||||
en={{
|
||||
value: draft.body_en.join('\n'),
|
||||
value: asLines(draft.body_en).join('\n'),
|
||||
onChange: (v) => set('body_en', v.split('\n')),
|
||||
}}
|
||||
textarea
|
||||
@@ -335,7 +342,7 @@ export function ProjectWritePage() {
|
||||
<div className="border-t border-ivory/10 pt-8">
|
||||
<GalleryField
|
||||
label="گالری تصاویر پروژه — فقط آپلود به MinIO"
|
||||
value={draft.gallery}
|
||||
value={asLines(draft.gallery)}
|
||||
onSave={persistGallery}
|
||||
namePrefix={draft.slug || 'project'}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user