import { useTranslation } from "react-i18next"; import { useState } from "react"; import { FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; import { ArrowLeft } from "lucide-react"; import { Dialog, DialogContent, DialogTrigger, DialogClose, } from "@/components/ui/dialog"; import { ProviderIcon } from "@/components/ProviderIcon"; import { IconPicker } from "@/components/IconPicker"; import { getIconMetadata } from "@/icons/extracted/metadata"; import type { UseFormReturn } from "react-hook-form"; import type { ProviderFormData } from "@/lib/schemas/provider"; interface BasicFormFieldsProps { form: UseFormReturn; } export function BasicFormFields({ form }: BasicFormFieldsProps) { const { t } = useTranslation(); const [iconDialogOpen, setIconDialogOpen] = useState(false); const currentIcon = form.watch("icon"); const currentIconColor = form.watch("iconColor"); const providerName = form.watch("name") || "Provider"; const effectiveIconColor = currentIconColor || (currentIcon ? getIconMetadata(currentIcon)?.defaultColor : undefined); const handleIconSelect = (icon: string) => { const meta = getIconMetadata(icon); form.setValue("icon", icon); form.setValue("iconColor", meta?.defaultColor ?? ""); }; return ( <> {/* 图标选择区域 - 顶部居中,可选 */}

{t("providerIcon.selectIcon", { defaultValue: "选择图标", })}

{/* 基础信息 - 网格布局 */}
( {t("provider.name")} )} /> ( {t("provider.notes")} )} />
( {t("provider.websiteUrl")} )} /> ); }