@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
40 lines (39 loc) • 2.14 kB
JavaScript
import * as React from 'react';
import MessageMobileUserActions from './actions/mobile/MessageMobileUserActions';
import MessageMobileAssistantActions from './actions/mobile/MessageMobileAssistantActions';
import { useThreadContext } from '../thread/ThreadContext';
import MdMenu from '../../ui/menu/MdMenu';
const MessageSelectedMobile = () => {
const [selectedValue, setSelectedValue] = React.useState();
const [open, setOpen] = React.useState(false);
const { mobileMessageActions, messageMode } = useThreadContext();
React.useEffect(() => {
if (open && !mobileMessageActions.selectedValue) {
setTimeout(() => {
setSelectedValue(undefined);
}, 400);
}
else {
setSelectedValue(mobileMessageActions.selectedValue);
}
setOpen(!!mobileMessageActions.selectedValue);
}, [mobileMessageActions]);
if (!selectedValue)
return null;
return (React.createElement(MessageSelectedMobileContent, { modeManager: messageMode, mobileMessageActions: {
handleCloseSelection: mobileMessageActions.handleCloseSelection,
handleSelectMessage: mobileMessageActions.handleSelectMessage,
selectedValue,
}, open: open }));
};
const MessageSelectedMobileContent = ({ mobileMessageActions, open, modeManager }) => {
const { message, thread, ...position } = mobileMessageActions.selectedValue;
return (React.createElement(MdMenu, { open: open, anchorEl: () => ({
getBoundingClientRect: position.getBoundingClientRect,
nodeType: 1,
}), anchorOrigin: {
vertical: 'bottom',
horizontal: 'left',
}, onClose: mobileMessageActions.handleCloseSelection }, message.isUser ? (React.createElement(MessageMobileUserActions, { message: message, modeManager: modeManager, onClose: mobileMessageActions.handleCloseSelection })) : (React.createElement(MessageMobileAssistantActions, { message: message, onClose: mobileMessageActions.handleCloseSelection }))));
};
export default MessageSelectedMobile;