diff options
| author | Alex Yaroshuk <[email protected]> | 2026-01-23 02:37:13 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-22 12:37:13 -0600 |
| commit | 3c7d5174b3ec508c0301513dda75adc253c3e74f (patch) | |
| tree | 713a188da515c3232b06e6e27fa3163faa42046b | |
| parent | 32f72f49a830dfadc32955ffe4bdd7fdf1659fbf (diff) | |
| download | opencode-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.tsx | 2 | ||||
| -rw-r--r-- | packages/ui/src/components/session-turn.tsx | 1 |
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() |
