import type { PointerEvent as ReactPointerEvent } from 'react'; import type { MessageEntry, ResizeHandleId } from '../types.js'; import { formatMessageDate, formatPayloadForCommandInput } from '../utils.js'; import { MessagePayloadDetail } from './MessagePayloadDetail.js'; import { ResizeHandle } from './ResizeHandle.js'; import { ScrollArea } from './ui/ScrollArea.js'; import { SendIcon } from './icons.js'; import { IconButton } from './ui/IconButton.js'; type MessageDetailsPaneProps = { selectedMessage: MessageEntry | null; isOpen: boolean; isNarrowViewport: boolean; activeResizeHandle: ResizeHandleId | null; onClose: () => void; onUseMessage: (message: MessageEntry) => void; onResizeStart: (event: ReactPointerEvent) => void; }; export const MessageDetailsPane = ({ selectedMessage, isOpen, isNarrowViewport, activeResizeHandle, onClose, onUseMessage, onResizeStart, }: MessageDetailsPaneProps) => { const isHidden = !isOpen || !selectedMessage; return ( <> {!isNarrowViewport ? ( ) : null}
Message Details
{ if (selectedMessage) { onUseMessage(selectedMessage); } }} > ×
{selectedMessage ? (
Date
{formatMessageDate(selectedMessage.date)}
Type
{selectedMessage.type}
Payload
) : (
Select a message to inspect its details.
)}
); }; export const getDispatcherValuesFromMessage = (message: MessageEntry) => { return { commandType: message.type, commandPayload: formatPayloadForCommandInput(message.payload), }; };