🐛 Fix open tooltip on tab change (#8680)

This commit is contained in:
Eva Marco 2026-03-19 13:41:33 +01:00 committed by GitHub
parent d59aa03924
commit 4abaae4f80
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 24 additions and 11 deletions

View File

@ -16,6 +16,7 @@
- Fix Alt/Option to draw shapes from center point (by @offreal) [Github #8361](https://github.com/penpot/penpot/pull/8361)
- Add token name on broken token pill on sidebar [Taiga #13527](https://tree.taiga.io/project/penpot/issue/13527)
- Fix tooltip activated when tab change [Taiga #13627](https://tree.taiga.io/project/penpot/issue/13627)
## 2.14.0 (Unreleased)

View File

@ -185,17 +185,18 @@
(mf/use-fn
(mf/deps tooltip-id delay)
(fn [_]
(let [trigger-el (mf/ref-val trigger-ref)]
(clear-schedule schedule-ref)
(add-schedule schedule-ref (d/nilv delay 300)
(fn []
(when-let [active @active-tooltip]
(when (not= (:id active) tooltip-id)
(when-let [tooltip-el (dom/get-element (:id active))]
(dom/set-css-property! tooltip-el "display" "none"))
(reset! active-tooltip nil)))
(reset! active-tooltip {:id tooltip-id :trigger trigger-el})
(reset! visible* true))))))
(when-not (.-hidden js/document)
(let [trigger-el (mf/ref-val trigger-ref)]
(clear-schedule schedule-ref)
(add-schedule schedule-ref (d/nilv delay 300)
(fn []
(when-let [active @active-tooltip]
(when (not= (:id active) tooltip-id)
(when-let [tooltip-el (dom/get-element (:id active))]
(dom/set-css-property! tooltip-el "display" "none"))
(reset! active-tooltip nil)))
(reset! active-tooltip {:id tooltip-id :trigger trigger-el})
(reset! visible* true)))))))
on-hide
(mf/use-fn
@ -243,6 +244,17 @@
content
aria-label)})]
(mf/use-effect
(mf/deps tooltip-id)
(fn []
(let [handle-visibility-change
(fn []
(when (.-hidden js/document)
(on-hide)))]
(js/document.addEventListener "visibilitychange" handle-visibility-change)
;; cleanup
#(js/document.removeEventListener "visibilitychange" handle-visibility-change))))
(mf/use-effect
(mf/deps visible placement offset)
(fn []