import React, { useMemo, useRef, useState } from "react"; import { IconButton, Popover } from "@agentscope-ai/design"; import { PlusOutlined } from "@ant-design/icons"; import { useProviderContext } from "@agentscope-ai/chat"; import { Flex, Upload } from "antd"; export default function UploadPopover({ uploadPropsList }: { uploadPropsList: any[]; }) { const { getPrefixCls } = useProviderContext(); const prefixCls = getPrefixCls('chat-anywhere-sender'); const [visible, setVisible] = useState(false); const uploadRefs = useRef>([]); const popoverNodes = useMemo(() => { return uploadPropsList.map((item, index) => { return (
{ // 触发对应Upload组件的children的click事件 uploadRefs.current[index]?.click(); setVisible(false); }} > {item.trigger}
); }) }, [uploadPropsList]); const nodes = useMemo(() => { return uploadPropsList.map((item, index) => { const { trigger, ...rest } = item; return (
(uploadRefs.current[index] = el)} /> ) }); }, [uploadPropsList]); return ( <> {popoverNodes} } trigger="click" styles={{ body: { padding: 4 } }}> } bordered={false} />
{nodes}
) }