import { Accordion } from "@/components/bs-ui/accordion"; import { SearchInput } from "@/components/bs-ui/input"; import { Sheet, SheetContent, SheetTitle, SheetTrigger } from "@/components/bs-ui/sheet"; import { getAssistantToolsApi } from "@/controllers/API/assistant"; import ToolItem from "@/pages/SkillPage/components/ToolItem"; import { useTranslation } from "react-i18next"; import { PersonIcon, StarFilledIcon } from "@radix-ui/react-icons"; import { useEffect, useMemo, useState } from "react"; import { Button } from "@/components/bs-ui/button"; export default function ToolsSheet({ select, onSelect, children }) { const { t } = useTranslation() const [type, setType] = useState('default') // default custom const [keyword, setKeyword] = useState('') const [allData, setAllData] = useState([]) useEffect(() => { getAssistantToolsApi(type).then(res => { setAllData(res) setKeyword('') }) }, [type]) const options = useMemo(() => { return allData.filter(el => el.name.toLowerCase().includes(keyword.toLowerCase()) || el.description.toLowerCase().includes(keyword.toLowerCase()) ) }, [keyword, allData]) return ( !open && setKeyword('')}> {children}
e.stopPropagation()}>
{t('build.addTool')} setKeyword(e.target.value)} />
setType('default')} > {t('tools.builtinTools')}
setType('custom')} > {t('tools.customTools')}
{ options.length ? options.map(el => ( )) :
{t('build.empty')}
}
); };