summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAlex Yaroshuk <[email protected]>2026-01-23 02:37:13 +0800
committerGitHub <[email protected]>2026-01-22 12:37:13 -0600
commit3c7d5174b3ec508c0301513dda75adc253c3e74f (patch)
tree713a188da515c3232b06e6e27fa3163faa42046b
parent32f72f49a830dfadc32955ffe4bdd7fdf1659fbf (diff)
downloadopencode-3c7d5174b3ec508c0301513dda75adc253c3e74f.tar.gz
opencode-3c7d5174b3ec508c0301513dda75adc253c3e74f.zip
fix(ui): prevent copy buttons from stealing focus from prompt input (#10084)
-rw-r--r--packages/ui/src/components/message-part.tsx2
-rw-r--r--packages/ui/src/components/session-turn.tsx1
2 files changed, 3 insertions, 0 deletions
diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx
index 76e88d353..d5d844161 100644
--- a/packages/ui/src/components/message-part.tsx
+++ b/packages/ui/src/components/message-part.tsx
@@ -425,6 +425,7 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp
<IconButton
icon={copied() ? "check" : "copy"}
variant="secondary"
+ onMouseDown={(e) => e.preventDefault()}
onClick={(event) => {
event.stopPropagation()
handleCopy()
@@ -701,6 +702,7 @@ PART_MAPPING["text"] = function TextPartDisplay(props) {
<IconButton
icon={copied() ? "check" : "copy"}
variant="secondary"
+ onMouseDown={(e) => e.preventDefault()}
onClick={handleCopy}
aria-label={copied() ? i18n.t("ui.message.copied") : i18n.t("ui.message.copy")}
/>
diff --git a/packages/ui/src/components/session-turn.tsx b/packages/ui/src/components/session-turn.tsx
index a8aa8324b..27b256d3c 100644
--- a/packages/ui/src/components/session-turn.tsx
+++ b/packages/ui/src/components/session-turn.tsx
@@ -626,6 +626,7 @@ export function SessionTurn(
<IconButton
icon={copied() ? "check" : "copy"}
variant="secondary"
+ onMouseDown={(e) => e.preventDefault()}
onClick={(event) => {
event.stopPropagation()
handleCopy()