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, { TitleIconBg } from "../cardComponent"; import { SkillIcon } from "@/components/bs-icons/skill"; import { AssistantIcon } from "@/components/bs-icons/assistant"; import { useTranslation } from "react-i18next"; import borderR from "../../../assets/npc/border-r.png"; import { SpotlightCard } from "@lobehub/ui"; import { Flexbox } from 'react-layout-kit'; import robot from "../../../assets/robot.png"; import robot2 from "../../../assets/robot2.png"; import robot3 from "../../../assets/robot3.png"; import zidingyi1 from "../../../assets/npc/zidingyi1.png"; import zidingyi2 from "../../../assets/npc/zidingyi2.png"; import npcIcon from "../../../assets/npc/npcIcon.png"; import nengliIcon from "../../../assets/npc/nengliIcon.png"; import { useDebounce } from "@/util/hook"; import LoadMore from "../loadMore"; export default function SkillChatSheet({ children, onSelect }) { const [open, setOpen] = useState(false) const { t } = useTranslation() const navigate = useNavigate() const [keyword, setKeyword] = useState(' ') const allDataRef = useRef([]) const pageRef = useRef(1) const searchRef = useRef('') const [options, setOptions] = useState([]) const loadData = (more = false) => { open && getChatOnlineApi(pageRef.current, searchRef.current).then(res => { setOptions(opts => more ? [...opts, ...res] : res) }) } const debounceLoad = useDebounce(loadData, 600, false) useEffect(() => { // open && getChatOnlineApi().then(res => { // allDataRef.current = res // setKeyword('') // }) // setKeyword(' ') pageRef.current = 1 searchRef.current = '' loadData() }, [open]) // const options = useMemo(() => { // return allDataRef.current.filter(el => el.name.toLowerCase().includes(keyword.toLowerCase())) // }, [keyword]) const handleSearch = (e) => { pageRef.current = 1 searchRef.current = e.target.value debounceLoad() } const handleLoadMore = () => { pageRef.current++ loadData(true) } const render = (item: any) => ( { onSelect(item); setOpen(false) }}>

{item.name}

{item.desc}

{item.flow_type === 'flow' ? '能力' : 'NPC'}
); return {children}
e.stopPropagation()}>
{/* */}
选择对话 选择一个您想使用的上线NPC或能力 {/* setKeyword(e.target.value)} /> */}
};