Просмотр исходного кода

fix(ui): incorrect behavior for the shui tooltip within popups trigger

charlie 1 год назад
Родитель
Сommit
37cff08d4a

+ 1 - 0
deps/shui/src/logseq/shui/ui.cljs

@@ -40,6 +40,7 @@
 
 (def tooltip (util/lsui-wrap "Tooltip"))
 (def tooltip-trigger (util/lsui-wrap "TooltipTrigger"))
+(def tooltip-portal (util/lsui-wrap "TooltipPortal"))
 (def tooltip-content (util/lsui-wrap "TooltipContent"))
 (def tooltip-provider (util/lsui-wrap "TooltipProvider"))
 

+ 3 - 1
packages/ui/@/components/ui/tooltip.tsx

@@ -12,6 +12,8 @@ const TooltipTrigger = TooltipPrimitive.Trigger
 
 const TooltipArrow = TooltipPrimitive.Arrow
 
+const TooltipPortal = TooltipPrimitive.TooltipPortal
+
 const TooltipContent = React.forwardRef<
   React.ElementRef<typeof TooltipPrimitive.Content>,
   React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>
@@ -31,4 +33,4 @@ const TooltipContent = React.forwardRef<
 ))
 TooltipContent.displayName = TooltipPrimitive.Content.displayName
 
-export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }
+export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider, TooltipPortal }

+ 2 - 2
packages/ui/src/ui.ts

@@ -83,7 +83,7 @@ import {
   AlertDialogPortal, AlertDialogTitle,
   AlertDialogTrigger
 } from '@/components/ui/alert-dialog'
-import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'
+import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TooltipPortal } from '@/components/ui/tooltip'
 import { TooltipArrow } from '@radix-ui/react-tooltip'
 import { Link } from '@/components/ui/link'
 import { Separator } from '@/components/ui/separator'
@@ -182,7 +182,7 @@ const shadui = {
   AlertDialogAction,
   AlertDialogCancel,
   Tooltip, TooltipTrigger, TooltipArrow,
-  TooltipContent, TooltipProvider,
+  TooltipContent, TooltipProvider, TooltipPortal,
   Toggle, ToggleGroup, ToggleGroupItem,
   Avatar, AvatarImage, AvatarFallback
 }

+ 6 - 5
src/main/frontend/components/property/value.cljs

@@ -898,9 +898,10 @@
                                               :dom-id dom-id})))]]
      (if show-tooltip?
        (shui/tooltip-provider
-        (shui/tooltip
-         (shui/tooltip-trigger
-          value-cp)
-         (shui/tooltip-content
-          (str "Change " (:block/original-name property)))))
+         (shui/tooltip
+           {:delayDuration 1200}
+           (shui/tooltip-trigger
+             {:onFocusCapture #(util/stop-propagation %)} value-cp)
+           (shui/tooltip-content
+             (str "Change " (:block/original-name property)))))
        value-cp))))