import React from "react";
import { SparkCopyLine } from "@agentscope-ai/icons";
import { AgentScopeRuntimeContentType, IAgentScopeRuntimeRequest } from "../types";
import { Bubble } from "@agentscope-ai/chat";
import { copy } from "../../../../Util/copy";
import { useChatAnywhereOptions } from "../../Context/ChatAnywhereOptionsContext";
function getTextContent(data: IAgentScopeRuntimeRequest): string {
return data.input
.flatMap(i => i.content)
.filter(c => c.type === AgentScopeRuntimeContentType.TEXT)
.map(c => (c as { text: string }).text)
.join('\n');
}
export default function RequestActions(props: {
data: IAgentScopeRuntimeRequest;
}) {
const requestActionsOptions = useChatAnywhereOptions(v => v.requestActions);
if (!requestActionsOptions) return null;
const text = getTextContent(props.data);
const defaultActions = text ? [
{
icon: ,
onClick: () => { copy(text); },
},
] : [];
const actions = (requestActionsOptions.list || defaultActions).map(i => {
const res = { ...i } as any;
if (i.render) {
res.children = React.createElement(i.render, { data: props.data });
}
return { ...res, onClick: () => { i.onClick?.({ data: props.data }); } };
});
if (!actions.length) return null;
return (
}
/>
);
}