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

Merge pull request #26674 from overleaf/ab-fix-stacking-tooltips

Lower default delayHide for tooltips to prevent stacking

GitOrigin-RevId: e13fa28f495e1b79aa552a236e1c9d161ab2ee0c
Alexandre Bourdin 1 год назад
Родитель
Сommit
75d443934f

+ 7 - 3
services/web/frontend/js/features/ui/components/bootstrap-5/tooltip.tsx

@@ -13,6 +13,10 @@ import {
 } from 'react-bootstrap'
 import { callFnsInSequence } from '@/utils/functions'
 
+const DEFAULT_DELAY_SHOW = 300
+// Slightly lower value avoids flickering when an adjacent tooltip is shown before the previous one hides
+const DEFAULT_DELAY_HIDE = 290
+
 type OverlayProps = Omit<OverlayTriggerProps, 'overlay' | 'children'>
 
 const UpdatingTooltip = forwardRef<HTMLDivElement, BSTooltipProps>(
@@ -72,11 +76,11 @@ function Tooltip({
   }
 
   const delay = overlayProps?.delay
-  let delayShow = 300
-  let delayHide = 300
+  let delayShow = DEFAULT_DELAY_SHOW
+  let delayHide = DEFAULT_DELAY_HIDE
   if (delay) {
     delayShow = typeof delay === 'number' ? delay : delay.show
-    delayHide = typeof delay === 'number' ? delay : delay.hide
+    delayHide = typeof delay === 'number' ? Math.max(delay - 10, 0) : delay.hide
   }
 
   return (