import { useState } from "react" import { useTranslation } from "react-i18next" import { QueuedMessage } from "@roo-code/types" import { Button } from "@src/components/ui" import Thumbnails from "../common/Thumbnails" import { Mention } from "./Mention" interface QueuedMessagesProps { queue: QueuedMessage[] onRemove: (index: number) => void onUpdate: (index: number, newText: string) => void } export const QueuedMessages = ({ queue, onRemove, onUpdate }: QueuedMessagesProps) => { const { t } = useTranslation("chat") const [editingStates, setEditingStates] = useState>({}) if (queue.length === 0) { return null } const getEditState = (messageId: string, currentText: string) => { return editingStates[messageId] || { isEditing: false, value: currentText } } const setEditState = (messageId: string, isEditing: boolean, value?: string) => { setEditingStates((prev) => ({ ...prev, [messageId]: { isEditing, value: value ?? prev[messageId]?.value ?? "" }, })) } const handleSaveEdit = (index: number, messageId: string, newValue: string) => { onUpdate(index, newValue) setEditState(messageId, false) } return (
{t("queuedMessages.title")}
{queue.map((message, index) => { const editState = getEditState(message.id, message.text) return (
{editState.isEditing ? (