diff --git a/frontend/src/components/tools/ToolPicker.tsx b/frontend/src/components/tools/ToolPicker.tsx index 06dad43b3..a8a8de4e9 100644 --- a/frontend/src/components/tools/ToolPicker.tsx +++ b/frontend/src/components/tools/ToolPicker.tsx @@ -66,7 +66,7 @@ const ToolPicker = ({ selectedToolKey, onSelect, filteredTools, isSearching = fa }, []); const { sections: visibleSections } = useToolSections(filteredTools); - const { favoriteTools, toolRegistry } = useToolWorkflow(); + const { favoriteTools, recentTools, toolRegistry } = useToolWorkflow(); const favoriteToolItems = useMemo(() => { return favoriteTools @@ -79,6 +79,20 @@ const ToolPicker = ({ selectedToolKey, onSelect, filteredTools, isSearching = fa .filter((item: any) => item && (item.tool.component || item.tool.link || item.id === 'read' || item.id === 'multiTool')) as Array<{ id: string; tool: ToolRegistryEntry }>; }, [favoriteTools, toolRegistry]); + const recentToolItems = useMemo(() => { + return recentTools + .map((toolId) => { + const tool = (toolRegistry as any)[toolId as ToolId] as ToolRegistryEntry | undefined; + return tool ? { id: toolId as string, tool } : null; + }) + .filter(Boolean) + .slice(0, 5) as Array<{ id: string; tool: ToolRegistryEntry }>; // cap to 5 + }, [recentTools, toolRegistry]); + + const recommendedCount = useMemo(() => { + return favoriteToolItems.length + recentToolItems.length; + }, [favoriteToolItems.length, recentToolItems.length]); + const quickSection = useMemo( () => visibleSections.find(s => s.key === 'quick'), [visibleSections] @@ -160,7 +174,7 @@ const ToolPicker = ({ selectedToolKey, onSelect, filteredTools, isSearching = fa > {t("toolPicker.recommended", "RECOMMENDED")} - {quickSection?.subcategories.reduce((acc, sc) => acc + sc.tools.length, 0)} + {recommendedCount} @@ -182,12 +196,23 @@ const ToolPicker = ({ selectedToolKey, onSelect, filteredTools, isSearching = fa )} - {favoriteToolItems.length > 0 && ( - - )} - {quickSection?.subcategories.map(sc => - renderToolButtons(t, sc, selectedToolKey, onSelect, false, false) + {recentToolItems.length > 0 && ( + + + + {recentToolItems.map(({ id, tool }) => ( + + ))} + + )} + {/* Temporarily hide the rest of Recommended tools; show only Favourites and Recently used */} >