mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-10 22:41:14 +00:00
feat: add edit/delete controls to AI messages
- Added edit and delete buttons to AI text messages - Implemented same functionality as user messages - Allows users to modify or remove AI responses for better conversation control - Fixes #9312
This commit is contained in:
parent
3e0bd0ea55
commit
5061595ed1
1 changed files with 53 additions and 7 deletions
|
|
@ -1122,18 +1122,64 @@ export const ChatRowContent = ({
|
|||
return null // we should never see this message type
|
||||
case "text":
|
||||
return (
|
||||
<div>
|
||||
<div className="group">
|
||||
<div style={headerStyle}>
|
||||
<MessageCircle className="w-4 shrink-0" aria-label="Speech bubble icon" />
|
||||
<span style={{ fontWeight: "bold" }}>{t("chat:text.rooSaid")}</span>
|
||||
</div>
|
||||
<div className="pl-6">
|
||||
<Markdown markdown={message.text} partial={message.partial} />
|
||||
{message.images && message.images.length > 0 && (
|
||||
<div style={{ marginTop: "10px" }}>
|
||||
{message.images.map((image, index) => (
|
||||
<ImageBlock key={index} imageData={image} />
|
||||
))}
|
||||
{isEditing ? (
|
||||
<div className="flex flex-col gap-2">
|
||||
<ChatTextArea
|
||||
inputValue={editedContent}
|
||||
setInputValue={setEditedContent}
|
||||
sendingDisabled={false}
|
||||
selectApiConfigDisabled={true}
|
||||
placeholderText={t("chat:editMessage.placeholder")}
|
||||
selectedImages={editImages}
|
||||
setSelectedImages={setEditImages}
|
||||
onSend={handleSaveEdit}
|
||||
onSelectImages={handleSelectImages}
|
||||
shouldDisableImages={!model?.supportsImages}
|
||||
mode={editMode}
|
||||
setMode={setEditMode}
|
||||
modeShortcutText=""
|
||||
isEditMode={true}
|
||||
onCancel={handleCancelEdit}
|
||||
/>
|
||||
</div>
|
||||
) : (
|
||||
<div className="flex justify-between">
|
||||
<div className="flex-grow">
|
||||
<Markdown markdown={message.text} partial={message.partial} />
|
||||
{message.images && message.images.length > 0 && (
|
||||
<div style={{ marginTop: "10px" }}>
|
||||
{message.images.map((image, index) => (
|
||||
<ImageBlock key={index} imageData={image} />
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
<div className="flex gap-2 pr-1">
|
||||
<div
|
||||
className="cursor-pointer shrink-0 opacity-0 group-hover:opacity-100 transition-opacity"
|
||||
style={{ visibility: isStreaming ? "hidden" : "visible" }}
|
||||
onClick={(e) => {
|
||||
e.stopPropagation()
|
||||
handleEditClick()
|
||||
}}>
|
||||
<Edit className="w-4 shrink-0" aria-label="Edit message icon" />
|
||||
</div>
|
||||
<div
|
||||
className="cursor-pointer shrink-0 opacity-0 group-hover:opacity-100 transition-opacity"
|
||||
style={{ visibility: isStreaming ? "hidden" : "visible" }}
|
||||
onClick={(e) => {
|
||||
e.stopPropagation()
|
||||
vscode.postMessage({ type: "deleteMessage", value: message.ts })
|
||||
}}>
|
||||
<Trash2 className="w-4 shrink-0" aria-label="Delete message icon" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue