mirror of
https://github.com/penpot/penpot.git
synced 2025-05-20 22:06:10 +02:00
🐛 Fix problem with rules when changing pages
This commit is contained in:
parent
2a632512b3
commit
37f52cafc9
2 changed files with 22 additions and 20 deletions
|
@ -81,25 +81,27 @@
|
||||||
callback (hooks/use-ref-callback callback)
|
callback (hooks/use-ref-callback callback)
|
||||||
|
|
||||||
;; We use the ref as a callback when the dom node is ready (or change)
|
;; We use the ref as a callback when the dom node is ready (or change)
|
||||||
node-ref (mf/use-fn
|
node-ref
|
||||||
(fn [^js node]
|
(mf/use-fn
|
||||||
(when (some? node)
|
(fn [^js node]
|
||||||
(let [^js observer (mf/ref-val observer-ref)
|
(when (some? node)
|
||||||
^js prev-val (mf/ref-val prev-val-ref)]
|
(let [^js observer (mf/ref-val observer-ref)
|
||||||
|
^js prev-val (mf/ref-val prev-val-ref)]
|
||||||
|
|
||||||
(when (and (not= prev-val node) (some? observer))
|
(when (and (not= prev-val node) (some? observer))
|
||||||
(log/debug :action "disconnect" :js/prev-val prev-val :js/node node)
|
(log/debug :action "disconnect" :js/prev-val prev-val :js/node node)
|
||||||
(.disconnect observer)
|
(.disconnect observer)
|
||||||
(mf/set-ref-val! observer-ref nil))
|
(mf/set-ref-val! observer-ref nil))
|
||||||
|
|
||||||
(when (and (not= prev-val node) (some? node))
|
(when (and (not= prev-val node) (some? node))
|
||||||
(let [^js observer (js/ResizeObserver.
|
(let [^js observer (js/ResizeObserver.
|
||||||
#(callback last-resize-type (dom/get-client-size node)))]
|
#(callback last-resize-type (dom/get-client-size node)))]
|
||||||
(mf/set-ref-val! observer-ref observer)
|
(mf/set-ref-val! observer-ref observer)
|
||||||
(log/debug :action "observe" :js/node node :js/observer observer)
|
(log/debug :action "observe" :js/node node :js/observer observer)
|
||||||
(.observe observer node))))
|
(.observe observer node)
|
||||||
|
(callback last-resize-type (dom/get-client-size node)))))
|
||||||
|
|
||||||
(mf/set-ref-val! prev-val-ref node))))]
|
(mf/set-ref-val! prev-val-ref node))))]
|
||||||
|
|
||||||
(mf/with-effect []
|
(mf/with-effect []
|
||||||
;; On dismount we need to disconnect the current observer
|
;; On dismount we need to disconnect the current observer
|
||||||
|
|
|
@ -70,7 +70,8 @@
|
||||||
(when (and textpalette? (not hide-ui?))
|
(when (and textpalette? (not hide-ui?))
|
||||||
[:& textpalette])
|
[:& textpalette])
|
||||||
|
|
||||||
[:section.workspace-content {:ref node-ref}
|
[:section.workspace-content {:key (dm/str "workspace-" page-id)
|
||||||
|
:ref node-ref}
|
||||||
[:section.workspace-viewport
|
[:section.workspace-viewport
|
||||||
(when (debug? :coordinates)
|
(when (debug? :coordinates)
|
||||||
[:& coordinates/coordinates {:colorpalette? colorpalette?}])
|
[:& coordinates/coordinates {:colorpalette? colorpalette?}])
|
||||||
|
@ -79,8 +80,7 @@
|
||||||
[:div.history-debug-overlay
|
[:div.history-debug-overlay
|
||||||
[:button {:on-click #(st/emit! dw/reinitialize-undo)} "CLEAR"]
|
[:button {:on-click #(st/emit! dw/reinitialize-undo)} "CLEAR"]
|
||||||
[:& history-toolbox]])
|
[:& history-toolbox]])
|
||||||
[:& viewport {:key (dm/str "workspace-" page-id)
|
[:& viewport {:file file
|
||||||
:file file
|
|
||||||
:wlocal wlocal
|
:wlocal wlocal
|
||||||
:wglobal wglobal
|
:wglobal wglobal
|
||||||
:selected selected
|
:selected selected
|
||||||
|
@ -131,7 +131,7 @@
|
||||||
project (mf/deref refs/workspace-project)
|
project (mf/deref refs/workspace-project)
|
||||||
layout (mf/deref refs/workspace-layout)
|
layout (mf/deref refs/workspace-layout)
|
||||||
wglobal (mf/deref refs/workspace-global)
|
wglobal (mf/deref refs/workspace-global)
|
||||||
ready? (mf/deref refs/workspace-ready?)
|
ready? (mf/deref refs/workspace-ready?)
|
||||||
workspace-read-only? (mf/deref refs/workspace-read-only?)
|
workspace-read-only? (mf/deref refs/workspace-read-only?)
|
||||||
|
|
||||||
components-v2 (features/use-feature :components-v2)
|
components-v2 (features/use-feature :components-v2)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue