summaryrefslogtreecommitdiffhomepage
path: root/packages/ui/src
diff options
context:
space:
mode:
authorBrendan Allan <[email protected]>2026-04-15 14:03:29 +0800
committerGitHub <[email protected]>2026-04-15 06:03:29 +0000
commit8d89c3417bcfb6bb29793a640a37686957e82692 (patch)
tree1e37ddb78bb1a777aeaf0dcd5ccb121146d8ff87 /packages/ui/src
parentc48a4cc05b610043d82333d7791be41bcf6c850d (diff)
downloadopencode-8d89c3417bcfb6bb29793a640a37686957e82692.tar.gz
opencode-8d89c3417bcfb6bb29793a640a37686957e82692.zip
fix: prevent tooltip reopen on trigger click (#22571)
Diffstat (limited to 'packages/ui/src')
-rw-r--r--packages/ui/src/components/tooltip.tsx12
1 files changed, 12 insertions, 0 deletions
diff --git a/packages/ui/src/components/tooltip.tsx b/packages/ui/src/components/tooltip.tsx
index ada597d0f..4366651d2 100644
--- a/packages/ui/src/components/tooltip.tsx
+++ b/packages/ui/src/components/tooltip.tsx
@@ -99,6 +99,8 @@ export function Tooltip(props: TooltipProps) {
onCleanup(() => obs.disconnect())
})
+ let justClickedTrigger = false
+
return (
<Switch>
<Match when={local.inactive}>{local.children}</Match>
@@ -112,6 +114,10 @@ export function Tooltip(props: TooltipProps) {
onOpenChange={(open) => {
if (local.forceOpen) return
if (state.block && open) return
+ if (justClickedTrigger) {
+ justClickedTrigger = false
+ return
+ }
setState("open", open)
}}
>
@@ -137,6 +143,12 @@ export function Tooltip(props: TooltipProps) {
data-force-open={local.forceOpen}
class={local.contentClass}
style={local.contentStyle}
+ onPointerDownOutside={(e) => {
+ if (ref === e.target || (e.target instanceof Node && ref?.contains(e.target))) {
+ justClickedTrigger = true
+ }
+ e.preventDefault()
+ }}
>
{local.value}
{/* <KobalteTooltip.Arrow data-slot="tooltip-arrow" /> */}