mirror of
https://github.com/penpot/penpot.git
synced 2025-05-23 23:46:11 +02:00
🐛 Fix problem with rules position on changing pages
This commit is contained in:
parent
c8360b1994
commit
cd505ecced
4 changed files with 33 additions and 25 deletions
|
@ -15,6 +15,8 @@
|
||||||
|
|
||||||
### :bug: Bugs fixed
|
### :bug: Bugs fixed
|
||||||
|
|
||||||
|
- Fix problem with rules position on changing pages [Taiga #4847](https://tree.taiga.io/project/penpot/issue/4847)
|
||||||
|
|
||||||
### :arrow_up: Deps updates
|
### :arrow_up: Deps updates
|
||||||
|
|
||||||
### :heart: Community contributions by (Thank you!)
|
### :heart: Community contributions by (Thank you!)
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
[app.main.refs :as refs]
|
[app.main.refs :as refs]
|
||||||
[app.main.store :as st]
|
[app.main.store :as st]
|
||||||
[app.main.ui.context :as ctx]
|
[app.main.ui.context :as ctx]
|
||||||
|
[app.main.ui.hooks :as hooks]
|
||||||
[app.main.ui.hooks.resize :refer [use-resize-observer]]
|
[app.main.ui.hooks.resize :refer [use-resize-observer]]
|
||||||
[app.main.ui.icons :as i]
|
[app.main.ui.icons :as i]
|
||||||
[app.main.ui.workspace.colorpalette :refer [colorpalette]]
|
[app.main.ui.workspace.colorpalette :refer [colorpalette]]
|
||||||
|
@ -45,6 +46,7 @@
|
||||||
(let [selected (mf/deref refs/selected-shapes)
|
(let [selected (mf/deref refs/selected-shapes)
|
||||||
file (obj/get props "file")
|
file (obj/get props "file")
|
||||||
layout (obj/get props "layout")
|
layout (obj/get props "layout")
|
||||||
|
page-id (obj/get props "page-id")
|
||||||
|
|
||||||
{:keys [vport] :as wlocal} (mf/deref refs/workspace-local)
|
{:keys [vport] :as wlocal} (mf/deref refs/workspace-local)
|
||||||
{:keys [options-mode] :as wglobal} (obj/get props "wglobal")
|
{:keys [options-mode] :as wglobal} (obj/get props "wglobal")
|
||||||
|
@ -77,7 +79,8 @@
|
||||||
[: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 {:file file
|
[:& viewport {:key (dm/str "workspace-" page-id)
|
||||||
|
:file file
|
||||||
:wlocal wlocal
|
:wlocal wlocal
|
||||||
:wglobal wglobal
|
:wglobal wglobal
|
||||||
:selected selected
|
:selected selected
|
||||||
|
@ -100,19 +103,21 @@
|
||||||
(mf/defc workspace-page
|
(mf/defc workspace-page
|
||||||
[{:keys [file layout page-id wglobal] :as props}]
|
[{:keys [file layout page-id wglobal] :as props}]
|
||||||
|
|
||||||
(mf/with-effect [page-id]
|
(let [prev-page-id (hooks/use-previous page-id)]
|
||||||
(if (nil? page-id)
|
(mf/with-effect
|
||||||
(st/emit! (dw/go-to-page))
|
[page-id]
|
||||||
(st/emit! (dw/initialize-page page-id)))
|
(when (and page-id (not= prev-page-id page-id))
|
||||||
(fn []
|
(st/emit! (dw/finalize-page prev-page-id)))
|
||||||
(when page-id
|
|
||||||
(st/emit! (dw/finalize-page page-id)))))
|
|
||||||
|
|
||||||
(when (mf/deref trimmed-page-ref)
|
(if (nil? page-id)
|
||||||
[:& workspace-content {:key (dm/str page-id)
|
(st/emit! (dw/go-to-page))
|
||||||
:file file
|
(st/emit! (dw/initialize-page page-id))))
|
||||||
:wglobal wglobal
|
|
||||||
:layout layout}]))
|
(when (mf/deref trimmed-page-ref)
|
||||||
|
[:& workspace-content {:page-id page-id
|
||||||
|
:file file
|
||||||
|
:wglobal wglobal
|
||||||
|
:layout layout}])))
|
||||||
|
|
||||||
(mf/defc workspace-loader
|
(mf/defc workspace-loader
|
||||||
[]
|
[]
|
||||||
|
@ -169,11 +174,10 @@
|
||||||
[:& context-menu]
|
[:& context-menu]
|
||||||
|
|
||||||
(if ready?
|
(if ready?
|
||||||
[:& workspace-page {:key (dm/str "page-" page-id)
|
[:& workspace-page {:page-id page-id
|
||||||
:page-id page-id
|
:file file
|
||||||
:file file
|
:wglobal wglobal
|
||||||
:wglobal wglobal
|
:layout layout}]
|
||||||
:layout layout}]
|
|
||||||
[:& workspace-loader])]]]]]]]))
|
[:& workspace-loader])]]]]]]]))
|
||||||
|
|
||||||
(mf/defc remove-graphics-dialog
|
(mf/defc remove-graphics-dialog
|
||||||
|
|
|
@ -225,7 +225,7 @@
|
||||||
(= (:layout (first selected-shapes)) :flex))]
|
(= (:layout (first selected-shapes)) :flex))]
|
||||||
|
|
||||||
(hooks/setup-dom-events viewport-ref zoom disable-paste in-viewport? workspace-read-only?)
|
(hooks/setup-dom-events viewport-ref zoom disable-paste in-viewport? workspace-read-only?)
|
||||||
(hooks/setup-viewport-size viewport-ref)
|
(hooks/setup-viewport-size vport viewport-ref)
|
||||||
(hooks/setup-cursor cursor alt? mod? space? panning drawing-tool drawing-path? node-editing? z? workspace-read-only?)
|
(hooks/setup-cursor cursor alt? mod? space? panning drawing-tool drawing-path? node-editing? z? workspace-read-only?)
|
||||||
(hooks/setup-keyboard alt? mod? space? z? shift?)
|
(hooks/setup-keyboard alt? mod? space? z? shift?)
|
||||||
(hooks/setup-hover-shapes page-id move-stream base-objects transform selected mod? hover hover-ids hover-top-frame-id @hover-disabled? focus zoom show-measures?)
|
(hooks/setup-hover-shapes page-id move-stream base-objects transform selected mod? hover hover-ids hover-top-frame-id @hover-disabled? focus zoom show-measures?)
|
||||||
|
|
|
@ -63,14 +63,16 @@
|
||||||
(doseq [key keys]
|
(doseq [key keys]
|
||||||
(events/unlistenByKey key))))))))
|
(events/unlistenByKey key))))))))
|
||||||
|
|
||||||
(defn setup-viewport-size [viewport-ref]
|
(defn setup-viewport-size [vport viewport-ref]
|
||||||
(mf/use-layout-effect
|
(mf/use-layout-effect
|
||||||
|
(mf/deps vport)
|
||||||
(fn []
|
(fn []
|
||||||
(let [node (mf/ref-val viewport-ref)
|
(when-not vport
|
||||||
prnt (dom/get-parent node)
|
(let [node (mf/ref-val viewport-ref)
|
||||||
size (dom/get-client-size prnt)]
|
prnt (dom/get-parent node)
|
||||||
;; We schedule the event so it fires after `initialize-page` event
|
size (dom/get-client-size prnt)]
|
||||||
(timers/schedule #(st/emit! (dw/initialize-viewport size)))))))
|
;; We schedule the event so it fires after `initialize-page` event
|
||||||
|
(timers/schedule #(st/emit! (dw/initialize-viewport size))))))))
|
||||||
|
|
||||||
(defn setup-cursor [cursor alt? mod? space? panning drawing-tool drawing-path? path-editing? z? workspace-read-only?]
|
(defn setup-cursor [cursor alt? mod? space? panning drawing-tool drawing-path? path-editing? z? workspace-read-only?]
|
||||||
(mf/use-effect
|
(mf/use-effect
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue