fix(ui): show 'Copied' tooltip instantly when copy button clicked

This commit is contained in:
David Hill
2026-01-24 22:25:20 +00:00
parent 4a4c1b31a7
commit 3d956c5f7e
2 changed files with 11 additions and 2 deletions

View File

@@ -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"

View File

@@ -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>