summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Hill <[email protected]>2026-01-24 22:25:20 +0000
committerDavid Hill <[email protected]>2026-01-24 22:25:20 +0000
commit3d956c5f7e3fb2e6317cf9b4d7bb417de1d6ec38 (patch)
tree58d44c37e6c24333554abac95e7a09067dce9e2d
parent4a4c1b31a7057e98a0888b5a491cd61bfc213785 (diff)
downloadopencode-3d956c5f7e3fb2e6317cf9b4d7bb417de1d6ec38.tar.gz
opencode-3d956c5f7e3fb2e6317cf9b4d7bb417de1d6ec38.zip
fix(ui): show 'Copied' tooltip instantly when copy button clicked
-rw-r--r--packages/ui/src/components/text-field.tsx1
-rw-r--r--packages/ui/src/components/tooltip.tsx12
2 files changed, 11 insertions, 2 deletions
diff --git a/packages/ui/src/components/text-field.tsx b/packages/ui/src/components/text-field.tsx
index 044f1759f..fdb592353 100644
--- a/packages/ui/src/components/text-field.tsx
+++ b/packages/ui/src/components/text-field.tsx
@@ -96,6 +96,7 @@ export function TextField(props: TextFieldProps) {
value={copied() ? i18n.t("ui.textField.copied") : i18n.t("ui.textField.copyLink")}
placement="top"
gutter={4}
+ forceOpen={copied()}
>
<IconButton
type="button"
diff --git a/packages/ui/src/components/tooltip.tsx b/packages/ui/src/components/tooltip.tsx
index 5c01a1311..1ebff7371 100644
--- a/packages/ui/src/components/tooltip.tsx
+++ b/packages/ui/src/components/tooltip.tsx
@@ -8,6 +8,7 @@ export interface TooltipProps extends ComponentProps<typeof KobalteTooltip> {
contentClass?: string
contentStyle?: JSX.CSSProperties
inactive?: boolean
+ forceOpen?: boolean
}
export interface TooltipKeybindProps extends Omit<TooltipProps, "value"> {
@@ -32,7 +33,14 @@ export function TooltipKeybind(props: TooltipKeybindProps) {
export function Tooltip(props: TooltipProps) {
const [open, setOpen] = createSignal(false)
- const [local, others] = splitProps(props, ["children", "class", "contentClass", "contentStyle", "inactive"])
+ const [local, others] = splitProps(props, [
+ "children",
+ "class",
+ "contentClass",
+ "contentStyle",
+ "inactive",
+ "forceOpen",
+ ])
const c = children(() => local.children)
@@ -55,7 +63,7 @@ export function Tooltip(props: TooltipProps) {
<Switch>
<Match when={local.inactive}>{local.children}</Match>
<Match when={true}>
- <KobalteTooltip forceMount gutter={4} {...others} open={open()} onOpenChange={setOpen}>
+ <KobalteTooltip forceMount gutter={4} {...others} open={local.forceOpen || open()} onOpenChange={setOpen}>
<KobalteTooltip.Trigger as={"div"} data-component="tooltip-trigger" class={local.class}>
{c()}
</KobalteTooltip.Trigger>