UNPKG

@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
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;