diff --git a/frontend/src/app/main/ui/hooks/resize.cljs b/frontend/src/app/main/ui/hooks/resize.cljs index 2dd4231e9..6c1ebe7b7 100644 --- a/frontend/src/app/main/ui/hooks/resize.cljs +++ b/frontend/src/app/main/ui/hooks/resize.cljs @@ -81,25 +81,27 @@ callback (hooks/use-ref-callback callback) ;; We use the ref as a callback when the dom node is ready (or change) - node-ref (mf/use-fn - (fn [^js node] - (when (some? node) - (let [^js observer (mf/ref-val observer-ref) - ^js prev-val (mf/ref-val prev-val-ref)] + node-ref + (mf/use-fn + (fn [^js node] + (when (some? node) + (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)) - (log/debug :action "disconnect" :js/prev-val prev-val :js/node node) - (.disconnect observer) - (mf/set-ref-val! observer-ref nil)) + (when (and (not= prev-val node) (some? observer)) + (log/debug :action "disconnect" :js/prev-val prev-val :js/node node) + (.disconnect observer) + (mf/set-ref-val! observer-ref nil)) - (when (and (not= prev-val node) (some? node)) - (let [^js observer (js/ResizeObserver. - #(callback last-resize-type (dom/get-client-size node)))] - (mf/set-ref-val! observer-ref observer) - (log/debug :action "observe" :js/node node :js/observer observer) - (.observe observer node)))) + (when (and (not= prev-val node) (some? node)) + (let [^js observer (js/ResizeObserver. + #(callback last-resize-type (dom/get-client-size node)))] + (mf/set-ref-val! observer-ref observer) + (log/debug :action "observe" :js/node node :js/observer observer) + (.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 [] ;; On dismount we need to disconnect the current observer diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index a8f693ce1..fa0f55059 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -70,7 +70,8 @@ (when (and textpalette? (not hide-ui?)) [:& textpalette]) - [:section.workspace-content {:ref node-ref} + [:section.workspace-content {:key (dm/str "workspace-" page-id) + :ref node-ref} [:section.workspace-viewport (when (debug? :coordinates) [:& coordinates/coordinates {:colorpalette? colorpalette?}]) @@ -79,8 +80,7 @@ [:div.history-debug-overlay [:button {:on-click #(st/emit! dw/reinitialize-undo)} "CLEAR"] [:& history-toolbox]]) - [:& viewport {:key (dm/str "workspace-" page-id) - :file file + [:& viewport {:file file :wlocal wlocal :wglobal wglobal :selected selected @@ -131,7 +131,7 @@ project (mf/deref refs/workspace-project) layout (mf/deref refs/workspace-layout) 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?) components-v2 (features/use-feature :components-v2)