import { Badge } from "@/components/bs-ui/badge"; import { Button } from "@/components/bs-ui/button"; import { getChatOnlineApi } from "@/controllers/API/assistant"; import { useEffect, useMemo, useRef, useState } from "react"; import { useNavigate } from "react-router-dom"; import { SearchInput } from "../../bs-ui/input"; import { Sheet, SheetContent, SheetDescription, SheetTitle, SheetTrigger } from "../../bs-ui/sheet"; import CardComponent from "../cardComponent"; import { SkillIcon } from "@/components/bs-icons/skill"; import { AssistantIcon } from "@/components/bs-icons/assistant"; import { useTranslation } from "react-i18next"; export default function SkillChatSheet({ children, onSelect }) { const [open, setOpen] = useState(false) const { t } = useTranslation() const navigate = useNavigate() const [keyword, setKeyword] = useState(' ') const allDataRef = useRef([]) useEffect(() => { open && getChatOnlineApi().then(res => { allDataRef.current = res setKeyword('') }) // setKeyword(' ') }, [open]) const options = useMemo(() => { return allDataRef.current.filter(el => el.name.toLowerCase().includes(keyword.toLowerCase())) }, [keyword]) return {children}
e.stopPropagation()}>
{t('chat.dialogueSelection')} {t('chat.chooseSkillOrAssistant')} setKeyword(e.target.value)} />
{ options.length ? options.map((flow, i) => ( {flow.flow_type === 'flow' ? '技能' : '助手'} } onClick={() => { onSelect(flow); setOpen(false) }} /> )) :

{t('build.empty')}

}
};