import React, { useState } from 'react'; import { Pressable, Text, TextInput, View } from 'react-native'; import { Check, Pencil, X } from 'lucide-react-native'; import { conversationStyles } from './conversationStyles'; import { themedColor } from '../../theme'; import { styles } from '../../styles'; import type { QueuedSuperagentMessage } from '../../types'; // Messages the user queued behind the running turn. Mirrors the web agent-editor's // QueuedMessages (inline edit + remove); the backend promotes them FIFO as the // agent frees up. export function QueuedMessages({ messages, onEdit, onDelete, }: { messages: QueuedSuperagentMessage[]; onEdit: (messageId: string, newContent: string) => void; onDelete: (messageId: string) => void; }) { const [editingId, setEditingId] = useState(null); const [editValue, setEditValue] = useState(''); if (messages.length === 0) return null; const startEdit = (message: QueuedSuperagentMessage) => { setEditingId(message.id); setEditValue(message.content); }; const cancelEdit = () => { setEditingId(null); setEditValue(''); }; const confirmEdit = () => { const trimmed = editValue.trim(); if (editingId && trimmed) onEdit(editingId, trimmed); cancelEdit(); }; return ( Queued ({messages.length}) {messages.map((message) => ( {editingId === message.id ? ( <> [conversationStyles.queuedIconButton, pressed && styles.pressed]} > [conversationStyles.queuedIconButton, pressed && styles.pressed]} > ) : ( <> {message.content} startEdit(message)} style={({ pressed }) => [conversationStyles.queuedIconButton, pressed && styles.pressed]} > onDelete(message.id)} style={({ pressed }) => [conversationStyles.queuedIconButton, pressed && styles.pressed]} > )} ))} ); }