From 2c1346a23d9b32bea2c4e54fedac6b33942ecbde Mon Sep 17 00:00:00 2001 From: Jason Date: Thu, 16 Oct 2025 16:51:47 +0800 Subject: [PATCH] refactor: convert provider preset selector to flat button layout Replace dropdown select menu with flat button layout matching MCP design. Selecting a preset now fills the form without auto-submitting. --- .../providers/forms/ProviderForm.tsx | 101 +++++++++--------- 1 file changed, 52 insertions(+), 49 deletions(-) diff --git a/src/components/providers/forms/ProviderForm.tsx b/src/components/providers/forms/ProviderForm.tsx index a4fd347..108484a 100644 --- a/src/components/providers/forms/ProviderForm.tsx +++ b/src/components/providers/forms/ProviderForm.tsx @@ -3,15 +3,6 @@ import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { useTranslation } from "react-i18next"; import { Button } from "@/components/ui/button"; -import { - Select, - SelectContent, - SelectGroup, - SelectItem, - SelectLabel, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; import { Form, FormControl, @@ -62,14 +53,16 @@ export function ProviderForm({ }: ProviderFormProps) { const { t } = useTranslation(); const { theme } = useTheme(); - const [selectedPresetId, setSelectedPresetId] = useState("custom"); + const [selectedPresetId, setSelectedPresetId] = useState( + initialData ? null : "custom", + ); const [activePreset, setActivePreset] = useState<{ id: string; category?: ProviderCategory; } | null>(null); useEffect(() => { - setSelectedPresetId("custom"); + setSelectedPresetId(initialData ? null : "custom"); setActivePreset(null); }, [appType, initialData]); @@ -174,6 +167,7 @@ export function ProviderForm({ setSelectedPresetId(value); if (value === "custom") { setActivePreset(null); + form.reset(defaultValues); return; } @@ -218,50 +212,59 @@ export function ProviderForm({ return (
-
- - {t("providerPreset.label", { defaultValue: "预设供应商" })} - - -

- {t("providerPreset.helper", { - defaultValue: "选择预设后可继续调整下方字段。", - })} -

-
+ +

+ {t("providerPreset.helper", { + defaultValue: "选择预设后可继续调整下方字段。", + })} +

+ + )}