diff --git a/site/src/pages/AgentsPage/ChatModelAdminPanel/ModelConfigFields.tsx b/site/src/pages/AgentsPage/ChatModelAdminPanel/ModelConfigFields.tsx index b2ca74ecd5..54bd3a54b6 100644 --- a/site/src/pages/AgentsPage/ChatModelAdminPanel/ModelConfigFields.tsx +++ b/site/src/pages/AgentsPage/ChatModelAdminPanel/ModelConfigFields.tsx @@ -249,23 +249,31 @@ const JSONField: FC< // ── Schema-driven field renderer ─────────────────────────────── +interface SchemaFieldProps extends FieldRenderContext { + field: FieldSchema; + fieldKey: string; + errorKey: string; +} + /** * Render a single field from the schema using the appropriate * generic renderer based on its `input_type`. */ -function renderSchemaField( - field: FieldSchema, - fieldKey: string, - errorKey: string, - ctx: FieldRenderContext, -): React.ReactNode { +const SchemaField: FC = ({ + field, + fieldKey, + errorKey, + form, + fieldErrors, + disabled, +}) => { const label = snakeToPrettyLabel(field.json_name); + const ctx: FieldRenderContext = { form, fieldErrors, disabled }; switch (field.input_type) { case "input": return ( = ({ {fields.map((field) => { const fieldKey = `config.${toFormFieldKey(resolved, field.json_name)}`; const errorKey = toFormFieldKey(resolved, field.json_name); - return renderSchemaField(field, fieldKey, errorKey, ctx); + return ( + + ); })} );