diff --git a/ui/web/src/pages/mcp/mcp-connection-fields.tsx b/ui/web/src/pages/mcp/mcp-connection-fields.tsx index 1f16fbef..c00a3a60 100644 --- a/ui/web/src/pages/mcp/mcp-connection-fields.tsx +++ b/ui/web/src/pages/mcp/mcp-connection-fields.tsx @@ -90,7 +90,7 @@ export function McpConnectionFields({ form }: McpConnectionFieldsProps) { setValue("headers", v)} + onChange={(v) => setValue("headers", v, { shouldDirty: true, shouldValidate: true })} keyPlaceholder={t("form.headerKeyPlaceholder")} valuePlaceholder={t("form.headerValuePlaceholder")} addLabel={t("form.addHeader")} diff --git a/ui/web/src/pages/mcp/mcp-form-dialog.tsx b/ui/web/src/pages/mcp/mcp-form-dialog.tsx index 159ce01f..07254a85 100644 --- a/ui/web/src/pages/mcp/mcp-form-dialog.tsx +++ b/ui/web/src/pages/mcp/mcp-form-dialog.tsx @@ -46,6 +46,7 @@ export function MCPFormDialog({ open, onOpenChange, server, onSubmit, onTest, on const [createdServer, setCreatedServer] = useState(null); const form = useForm({ + // eslint-disable-next-line @typescript-eslint/no-explicit-any resolver: zodResolver(mcpFormSchema), mode: "onChange", defaultValues: { @@ -286,6 +287,11 @@ export function MCPFormDialog({ open, onOpenChange, server, onSubmit, onTest, on {error &&

{error}

} + {Object.keys(form.formState.errors).length > 0 && !error && ( +

+ {Object.values(form.formState.errors).map(e => e?.message).filter(Boolean).join(", ")} +

+ )} @@ -321,7 +327,7 @@ export function MCPFormDialog({ open, onOpenChange, server, onSubmit, onTest, on - diff --git a/ui/web/src/pages/mcp/mcp-settings-fields.tsx b/ui/web/src/pages/mcp/mcp-settings-fields.tsx index dbee08b8..c31c7c52 100644 --- a/ui/web/src/pages/mcp/mcp-settings-fields.tsx +++ b/ui/web/src/pages/mcp/mcp-settings-fields.tsx @@ -49,7 +49,7 @@ export function McpSettingsFields({ form, isEditing }: McpSettingsFieldsProps) { setValue("env", v)} + onChange={(v) => setValue("env", v, { shouldDirty: true, shouldValidate: true })} keyPlaceholder={t("form.envKeyPlaceholder")} valuePlaceholder={t("form.envValuePlaceholder")} addLabel={t("form.addVariable")} @@ -246,7 +246,7 @@ export function McpSettingsFields({ form, isEditing }: McpSettingsFieldsProps) { id="mcp-timeout" type="number" value={timeout} - onChange={(e) => setValue("timeout", Number(e.target.value))} + onChange={(e) => setValue("timeout", parseInt(e.target.value, 10) || 60, { shouldValidate: true })} min={1} />