@plteam/chat-ui
Version:
CUI Kit is a free and open-source library for creating AI assistant chat interfaces, built with React, Material UI, and TypeScript
29 lines (28 loc) • 1.57 kB
JavaScript
import * as React from 'react';
import { ContentCopyIcon } from '../../../icons';
import Tooltip from '@mui/material/Tooltip';
import Box from '@mui/material/Box';
import MessageCopyMenuItems from './MessageCopyMenuItems';
import { usePopoverState } from '../../hooks/usePopoverState';
import MdMenu from '../../../ui/menu/MdMenu';
import { useChatCoreSlots } from '../../core/ChatSlotsContext';
import { useChatContext } from '../../core/ChatGlobalContext';
import { useLocalizationContext } from '../../core/LocalizationContext';
const MessageActionCopy = ({ message }) => {
const { processAssistantText } = useChatContext();
const locale = useLocalizationContext();
let text = message.text;
if (processAssistantText) {
text = processAssistantText(message.text);
}
const coreSlots = useChatCoreSlots();
const { anchorEl, handleClose, handleClick } = usePopoverState({ hideByAnchorElement: true });
return (React.createElement(React.Fragment, null,
React.createElement(Tooltip, { title: locale.messageCopy },
React.createElement(Box, null,
React.createElement(coreSlots.iconButton, { size: "small", onClick: handleClick },
React.createElement(ContentCopyIcon, null)))),
React.createElement(MdMenu, { disablePortal: true, open: !!anchorEl, anchorEl: anchorEl, onClose: handleClose },
React.createElement(MessageCopyMenuItems, { short: true, text: text, handleClose: handleClose }))));
};
export default MessageActionCopy;