Added copy option to message context menu (#4389)

Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
This commit is contained in:
opencode-agent[bot]
2025-11-16 15:35:05 -06:00
committed by GitHub
parent 8ba48ed71d
commit 832be6e7eb
3 changed files with 23 additions and 2 deletions

View File

@@ -3,6 +3,7 @@ import { useSync } from "@tui/context/sync"
import { DialogSelect } from "@tui/ui/dialog-select" import { DialogSelect } from "@tui/ui/dialog-select"
import { useSDK } from "@tui/context/sdk" import { useSDK } from "@tui/context/sdk"
import { useRoute } from "@tui/context/route" import { useRoute } from "@tui/context/route"
import { Clipboard } from "@tui/util/clipboard"
import type { PromptInfo } from "@tui/component/prompt/history" import type { PromptInfo } from "@tui/component/prompt/history"
export function DialogMessage(props: { export function DialogMessage(props: {
@@ -54,6 +55,26 @@ export function DialogMessage(props: {
dialog.clear() dialog.clear()
}, },
}, },
{
title: "Copy",
value: "message.copy",
description: "copy message text to clipboard",
onSelect: async (dialog) => {
const msg = message()
if (!msg) return
const parts = sync.data.part[msg.id]
const text = parts.reduce((agg, part) => {
if (part.type === "text" && !part.synthetic) {
agg += part.text
}
return agg
}, "")
await Clipboard.copy(text)
dialog.clear()
},
},
{ {
title: "Fork", title: "Fork",
value: "session.fork", value: "session.fork",