From 633708d0b513a9a5b5ddc8074f3b9953351119b5 Mon Sep 17 00:00:00 2001 From: hzhang Date: Fri, 16 May 2025 16:25:01 +0100 Subject: [PATCH] add: search tools by name --- client/src/components/ToolsTab.tsx | 58 ++++++++++++++++++------------ 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/client/src/components/ToolsTab.tsx b/client/src/components/ToolsTab.tsx index aa67bfc..b3cdbc3 100644 --- a/client/src/components/ToolsTab.tsx +++ b/client/src/components/ToolsTab.tsx @@ -41,6 +41,7 @@ const ToolsTab = ({ }) => { const [params, setParams] = useState>({}); const [isToolRunning, setIsToolRunning] = useState(false); + const [filterText, setFilterText] = useState(""); useEffect(() => { const params = Object.entries( @@ -52,6 +53,12 @@ const ToolsTab = ({ setParams(Object.fromEntries(params)); }, [selectedTool]); + const filteredTools = filterText + ? tools.filter((tool) => + tool.name.toLowerCase().includes(filterText.toLowerCase()) + ) + : tools; + const renderToolResult = () => { if (!toolResult) return null; @@ -124,27 +131,34 @@ const ToolsTab = ({ return (
- { - clearTools(); - setSelectedTool(null); - }} - setSelectedItem={setSelectedTool} - renderItem={(tool) => ( -
- {tool.name} - - {tool.description} - -
- )} - title="Tools" - buttonText={nextCursor ? "List More Tools" : "List Tools"} - isButtonDisabled={!nextCursor && tools.length > 0} - /> - +
+ setFilterText(e.target.value)} + className="w-full" + /> + { + clearTools(); + setSelectedTool(null); + }} + setSelectedItem={setSelectedTool} + renderItem={(tool) => ( +
+ {tool.name} + + {tool.description} + +
+ )} + title="Tools" + buttonText={nextCursor ? "List More Tools" : "List Tools"} + isButtonDisabled={!nextCursor && tools.length > 0} + /> +

@@ -301,4 +315,4 @@ const ToolsTab = ({ ); }; -export default ToolsTab; +export default ToolsTab; \ No newline at end of file