summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Hill <[email protected]>2026-01-24 22:17:59 +0000
committerDavid Hill <[email protected]>2026-01-24 22:17:59 +0000
commit30111d2b16ba61b0a5c3996426ef1faa59971fe1 (patch)
tree628810504f989c9b0e134b6bf55669abaecf2d90
parentb695216063e1e36bf8d205234835a68fc53a73ae (diff)
downloadopencode-30111d2b16ba61b0a5c3996426ef1faa59971fe1.tar.gz
opencode-30111d2b16ba61b0a5c3996426ef1faa59971fe1.zip
fix(ui): prevent focus on share popover text field
-rw-r--r--packages/app/src/components/session/session-header.tsx4
-rw-r--r--packages/ui/src/components/text-field.css2
-rw-r--r--packages/ui/src/components/text-field.tsx1
3 files changed, 4 insertions, 3 deletions
diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx
index 0ea9be2d3..808fbb112 100644
--- a/packages/app/src/components/session/session-header.tsx
+++ b/packages/app/src/components/session/session-header.tsx
@@ -195,8 +195,8 @@ export function SessionHeader() {
</div>
}
>
- <div class="flex flex-col gap-2 w-72">
- <TextField value={shareUrl() ?? ""} readOnly copyable class="w-full" />
+ <div class="flex flex-col gap-2">
+ <TextField value={shareUrl() ?? ""} readOnly copyable tabIndex={-1} class="w-full" />
<div class="grid grid-cols-2 gap-2">
<Button
size="large"
diff --git a/packages/ui/src/components/text-field.css b/packages/ui/src/components/text-field.css
index 15f5fd4fb..c94376be7 100644
--- a/packages/ui/src/components/text-field.css
+++ b/packages/ui/src/components/text-field.css
@@ -51,7 +51,7 @@
border: 1px solid var(--border-weak-base);
background: var(--input-base);
- &:focus-within {
+ &:focus-within:not(:has([data-readonly])) {
border-color: transparent;
/* border/shadow-xs/select */
box-shadow:
diff --git a/packages/ui/src/components/text-field.tsx b/packages/ui/src/components/text-field.tsx
index 2e9f72374..58155e8d9 100644
--- a/packages/ui/src/components/text-field.tsx
+++ b/packages/ui/src/components/text-field.tsx
@@ -102,6 +102,7 @@ export function TextField(props: TextFieldProps) {
icon={copied() ? "check" : "link"}
variant="ghost"
onClick={handleCopy}
+ tabIndex={-1}
data-slot="input-copy-button"
aria-label={copied() ? i18n.t("ui.textField.copied") : i18n.t("ui.textField.copyToClipboard")}
/>