diff options
| author | David Hill <[email protected]> | 2026-01-24 22:25:20 +0000 |
|---|---|---|
| committer | David Hill <[email protected]> | 2026-01-24 22:25:20 +0000 |
| commit | 3d956c5f7e3fb2e6317cf9b4d7bb417de1d6ec38 (patch) | |
| tree | 58d44c37e6c24333554abac95e7a09067dce9e2d | |
| parent | 4a4c1b31a7057e98a0888b5a491cd61bfc213785 (diff) | |
| download | opencode-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.tsx | 1 | ||||
| -rw-r--r-- | packages/ui/src/components/tooltip.tsx | 12 |
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> |
