diff --git a/web/app/components/workflow/nodes/_base/components/agent-strategy-selector.tsx b/web/app/components/workflow/nodes/_base/components/agent-strategy-selector.tsx index 136ddb27ee..2e907ad1ad 100644 --- a/web/app/components/workflow/nodes/_base/components/agent-strategy-selector.tsx +++ b/web/app/components/workflow/nodes/_base/components/agent-strategy-selector.tsx @@ -35,7 +35,7 @@ const ExternalNotInstallWarn = () => { } -function formatStrategy(input: StrategyPluginDetail[]): ToolWithProvider[] { +function formatStrategy(input: StrategyPluginDetail[], getIcon: (i: string) => string): ToolWithProvider[] { return input.map((item) => { const res: ToolWithProvider = { id: item.provider, @@ -44,7 +44,7 @@ function formatStrategy(input: StrategyPluginDetail[]): ToolWithProvider[] { name: item.declaration.identity.name, description: item.declaration.identity.description as any, plugin_id: item.plugin_id, - icon: item.declaration.identity.icon, + icon: getIcon(item.declaration.identity.icon), label: item.declaration.identity.label as any, type: CollectionType.all, tools: item.declaration.strategies.map(strategy => ({ @@ -76,19 +76,18 @@ export const AgentStrategySelector = (props: AgentStrategySelectorProps) => { const [viewType, setViewType] = useState(ViewType.flat) const [query, setQuery] = useState('') const stra = useStrategyProviders() - const list = stra.data ? formatStrategy(stra.data) : undefined + const { getIconUrl } = useGetIcon() + const list = stra.data ? formatStrategy(stra.data, getIconUrl) : undefined const filteredTools = useMemo(() => { if (!list) return [] return list.filter(tool => tool.name.toLowerCase().includes(query.toLowerCase())) }, [query, list]) // TODO: should be replaced by real data const isExternalInstalled = true - const { getIconUrl } = useGetIcon() // TODO: 验证这玩意写对了没 - const iconFilename = list?.find( + const icon = list?.find( coll => coll.tools?.find(tool => tool.name === value?.agent_strategy_name), - )?.icon - const icon = iconFilename ? getIconUrl(iconFilename as string) : undefined + )?.icon as string | undefined const { t } = useTranslation() return