From 01885c25de2c6380ec915de358ff6407e1b3e218 Mon Sep 17 00:00:00 2001 From: Ryan Hopper-Lowe <46546486+ryanhopperlowe@users.noreply.github.com> Date: Thu, 19 Dec 2024 14:58:56 -0600 Subject: [PATCH] chore: remove useForm dependency from BasicToolForm (#987) * chore: remove useForm dependency from BasicToolForm useForm returns `useRef().current` under the hood as a hack to optimize rendering, which causes some erratic behavior when certain conditions are met (I think it has to do with resetting the form's default values...????) Either way, it added way more complexity than it was worth (at least for this component) so removing it was the best solution * chore: remove redundant add/remove code for Tool Catalog --- ui/admin/app/components/agent/ToolForm.tsx | 32 +++-- .../app/components/tools/BasicToolForm.tsx | 123 +++++------------- ui/admin/app/components/tools/ToolCatalog.tsx | 24 ++-- ui/admin/app/components/workflow/Workflow.tsx | 4 +- .../app/components/workflow/steps/Step.tsx | 6 +- 5 files changed, 71 insertions(+), 118 deletions(-) diff --git a/ui/admin/app/components/agent/ToolForm.tsx b/ui/admin/app/components/agent/ToolForm.tsx index 5e7314d7b..f8d1754f4 100644 --- a/ui/admin/app/components/agent/ToolForm.tsx +++ b/ui/admin/app/components/agent/ToolForm.tsx @@ -124,6 +124,22 @@ export function ToolForm({ { tool, variant } ); + const updateTools = (tools: string[], variant: ToolVariant) => { + const removedToolIndexes = toolFields.fields + .filter((field) => !tools.includes(field.tool)) + .map((item) => toolFields.fields.indexOf(item)); + + const addedTools = tools.filter( + (tool) => !toolFields.fields.some((field) => field.tool === tool) + ); + + toolFields.remove(removedToolIndexes); + + for (const tool of addedTools) { + toolFields.append({ tool, variant }); + } + }; + return (