import React from 'react'; import { X, ArrowUp } from 'lucide-react'; import { Button } from './ui/button'; import type { QueuedMessage } from './hooks/useQueue'; import { isTextPart } from '../types'; interface QueuedMessagesDisplayProps { messages: QueuedMessage[]; onEditMessage: (message: QueuedMessage) => void; onRemoveMessage: (messageId: string) => void; } /** * Displays queued messages with visual indicators and keyboard hints. */ export function QueuedMessagesDisplay({ messages, onEditMessage, onRemoveMessage, }: QueuedMessagesDisplayProps) { if (messages.length === 0) return null; // Extract text content from message const getMessageText = (message: QueuedMessage): string => { const textParts = message.content.filter(isTextPart).map((part) => part.text); return textParts.join(' ') || '[attachment]'; }; // Truncate text to max lines const truncateText = (text: string, maxLines: number = 2): string => { const lines = text.split('\n'); if (lines.length <= maxLines) { return text.length > 100 ? text.slice(0, 100) + '...' : text; } return lines.slice(0, maxLines).join('\n') + '...'; }; return (