'use client' import type { FC } from 'react' import React from 'react' import { useEffect, useState } from 'react' import AllTools from '@/app/components/workflow/block-selector/all-tools' import type { ToolDefaultValue } from './types' import { fetchAllBuiltInTools, fetchAllCustomTools, fetchAllWorkflowTools, } from '@/service/tools' import type { BlockEnum, ToolWithProvider } from '@/app/components/workflow/types' type Props = { onSelect: (tool: ToolDefaultValue) => void supportAddCustomTool?: boolean } const ToolPicker: FC = ({ onSelect, supportAddCustomTool, }) => { const [searchText, setSearchText] = useState('') const [buildInTools, setBuildInTools] = useState([]) const [customTools, setCustomTools] = useState([]) const [workflowTools, setWorkflowTools] = useState([]) useEffect(() => { (async () => { const buildInTools = await fetchAllBuiltInTools() const customTools = await fetchAllCustomTools() const workflowTools = await fetchAllWorkflowTools() setBuildInTools(buildInTools) setCustomTools(customTools) setWorkflowTools(workflowTools) })() }, []) const handleSelect = (_type: BlockEnum, tool?: ToolDefaultValue) => { onSelect(tool!) } return (
setSearchText(e.target.value)} />
) } export default React.memo(ToolPicker)