fix(admin): صفحهٔ ویرایش پروژه با body/body_en غیرآرایه سفید میشد — asLines همهٔ مقادیر را امن میکند (رفع پروژههای تازهساخته)
This commit is contained in:
@@ -56,6 +56,13 @@ const EMPTY: ProjectDraft = {
|
|||||||
image: '', gallery: [],
|
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 =
|
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'
|
'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
|
<Pair
|
||||||
label="متن پروژه — هر پاراگراف یک خط"
|
label="متن پروژه — هر پاراگراف یک خط"
|
||||||
fa={{
|
fa={{
|
||||||
value: draft.body.join('\n'),
|
value: asLines(draft.body).join('\n'),
|
||||||
onChange: (v) => set('body', v.split('\n')),
|
onChange: (v) => set('body', v.split('\n')),
|
||||||
}}
|
}}
|
||||||
en={{
|
en={{
|
||||||
value: draft.body_en.join('\n'),
|
value: asLines(draft.body_en).join('\n'),
|
||||||
onChange: (v) => set('body_en', v.split('\n')),
|
onChange: (v) => set('body_en', v.split('\n')),
|
||||||
}}
|
}}
|
||||||
textarea
|
textarea
|
||||||
@@ -335,7 +342,7 @@ export function ProjectWritePage() {
|
|||||||
<div className="border-t border-ivory/10 pt-8">
|
<div className="border-t border-ivory/10 pt-8">
|
||||||
<GalleryField
|
<GalleryField
|
||||||
label="گالری تصاویر پروژه — فقط آپلود به MinIO"
|
label="گالری تصاویر پروژه — فقط آپلود به MinIO"
|
||||||
value={draft.gallery}
|
value={asLines(draft.gallery)}
|
||||||
onSave={persistGallery}
|
onSave={persistGallery}
|
||||||
namePrefix={draft.slug || 'project'}
|
namePrefix={draft.slug || 'project'}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user