From e4d46609cfeef133516413e42e0fd7d541e5e9fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Wed, 7 Oct 2026 11:00:34 +0800 Subject: [PATCH] =?UTF-8?q?FormCard=20=E5=AD=97=E6=AE=B5=E6=8E=A7=E4=BB=B6?= =?UTF-8?q?=E6=91=8A=E5=B9=B3=E5=B5=8C=E5=A5=97=E4=B8=89=E5=85=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - options/multiline/input 三态改为 if/else 生成 inputSlot - 复用一个 fieldClassName,去掉三份重复的边框/错误态样式与嵌套三元 --- .../export/tabs/taonier/FormCard.tsx | 105 +++++++++--------- 1 file changed, 54 insertions(+), 51 deletions(-) diff --git a/apps/ai-game-creator-shell/src/view/project-development/export/tabs/taonier/FormCard.tsx b/apps/ai-game-creator-shell/src/view/project-development/export/tabs/taonier/FormCard.tsx index 28ba315b1..d5f6193b0 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/export/tabs/taonier/FormCard.tsx +++ b/apps/ai-game-creator-shell/src/view/project-development/export/tabs/taonier/FormCard.tsx @@ -1,5 +1,5 @@ import { ImagePlus, Sparkles, Trash2 } from 'lucide-react'; -import { useState } from 'react'; +import { type ReactNode, useState } from 'react'; import { AssetImporter } from '../../../../../components/AssetImporter'; import { SPRITE_IMPORTER_SETTINGS } from '../../../../../components/AssetImporter/settings'; @@ -104,6 +104,58 @@ export function FormCard({ fieldErrors.find((item) => item.field === meta.field)?.reason ?? null; const value = form[meta.field]; + // 字段控件按 options → multiline → input 三态摊开算好,JSX 里只留一个 {inputSlot}: + // 不再用嵌套三元,也顺手复用同一份边框/错误态样式。 + const fieldClassName = `w-full rounded-xl border bg-(--platform-input-fill) px-3 py-2 text-sm text-(--platform-text-strong) outline-none focus:border-(--platform-accent) ${ + error + ? 'border-(--platform-accent)' + : 'border-(--platform-surface-border)' + }`; + let inputSlot: ReactNode; + if (meta.options) { + inputSlot = ( + + ); + } else if (meta.multiline) { + inputSlot = ( +