mirror of
https://github.com/penpot/penpot.git
synced 2025-05-22 01:26:11 +02:00
Properly reinitialize alignment index when page metadata is updated.
This commit is contained in:
parent
0c3d1a5ded
commit
a3a43d4b8a
2 changed files with 57 additions and 55 deletions
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
;; --- Initialize Workspace
|
;; --- Initialize Workspace
|
||||||
|
|
||||||
(declare initialize-alignment-index)
|
(declare initialize-alignment)
|
||||||
|
|
||||||
(defrecord InitializeWorkspace [project page]
|
(defrecord InitializeWorkspace [project page]
|
||||||
ptk/UpdateEvent
|
ptk/UpdateEvent
|
||||||
|
@ -64,15 +64,17 @@
|
||||||
;; Activate loaded if page is not fetched.
|
;; Activate loaded if page is not fetched.
|
||||||
(when-not page (reset! st/loader true))
|
(when-not page (reset! st/loader true))
|
||||||
|
|
||||||
|
(println "initialize")
|
||||||
|
|
||||||
(rx/merge
|
(rx/merge
|
||||||
(if page
|
(if page
|
||||||
(rx/of (initialize-alignment-index page-id))
|
(rx/of (initialize-alignment page-id))
|
||||||
(rx/merge
|
(rx/merge
|
||||||
(rx/of (udp/fetch-pages project))
|
(rx/of (udp/fetch-pages project))
|
||||||
(->> (rx/filter udp/pages-fetched? s)
|
(->> (rx/filter udp/pages-fetched? s)
|
||||||
(rx/take 1)
|
(rx/take 1)
|
||||||
(rx/do #(reset! st/loader false))
|
(rx/do #(reset! st/loader false))
|
||||||
(rx/map #(initialize-alignment-index page-id)))))
|
(rx/map #(initialize-alignment page-id)))))
|
||||||
|
|
||||||
;; Initial history loading
|
;; Initial history loading
|
||||||
(rx/of
|
(rx/of
|
||||||
|
@ -206,7 +208,7 @@
|
||||||
|
|
||||||
;; --- Initialize Alignment Index
|
;; --- Initialize Alignment Index
|
||||||
|
|
||||||
(defrecord InitializeAlignmentIndex [id]
|
(defrecord InitializeAlignment [id]
|
||||||
ptk/WatchEvent
|
ptk/WatchEvent
|
||||||
(watch [_ state s]
|
(watch [_ state s]
|
||||||
(let [page (get-in state [:pages id])
|
(let [page (get-in state [:pages id])
|
||||||
|
@ -222,9 +224,9 @@
|
||||||
(when (:grid-alignment opts)
|
(when (:grid-alignment opts)
|
||||||
(rx/of (activate-flag :grid-alignment)))))))
|
(rx/of (activate-flag :grid-alignment)))))))
|
||||||
|
|
||||||
(defn initialize-alignment-index
|
(defn initialize-alignment
|
||||||
[id]
|
[id]
|
||||||
(InitializeAlignmentIndex. id))
|
(InitializeAlignment. id))
|
||||||
|
|
||||||
;; --- Update Metadata
|
;; --- Update Metadata
|
||||||
|
|
||||||
|
@ -234,7 +236,7 @@
|
||||||
ptk/WatchEvent
|
ptk/WatchEvent
|
||||||
(watch [_ state s]
|
(watch [_ state s]
|
||||||
(rx/of (udp/update-metadata id metadata)
|
(rx/of (udp/update-metadata id metadata)
|
||||||
(initialize-alignment-index id))))
|
(initialize-alignment id))))
|
||||||
|
|
||||||
(defn update-metadata
|
(defn update-metadata
|
||||||
[id metadata]
|
[id metadata]
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
[potok.core :as ptk]
|
[potok.core :as ptk]
|
||||||
[uxbox.store :as st]
|
[uxbox.store :as st]
|
||||||
[uxbox.main.data.pages :as udp]
|
[uxbox.main.data.pages :as udp]
|
||||||
|
[uxbox.main.data.workspace :as udw]
|
||||||
[uxbox.main.data.lightbox :as udl]
|
[uxbox.main.data.lightbox :as udl]
|
||||||
[uxbox.main.ui.icons :as i]
|
[uxbox.main.ui.icons :as i]
|
||||||
[uxbox.main.ui.workspace.base :refer [page-ref]]
|
[uxbox.main.ui.workspace.base :refer [page-ref]]
|
||||||
|
@ -93,10 +94,9 @@
|
||||||
(udp/update-metadata id)
|
(udp/update-metadata id)
|
||||||
(st/emit!))))
|
(st/emit!))))
|
||||||
(on-magnet-change []
|
(on-magnet-change []
|
||||||
(let [checked? (dom/checked? (mx/ref-node own "magnet"))]
|
(let [checked? (dom/checked? (mx/ref-node own "magnet"))
|
||||||
(->> (assoc metadata :grid-alignment checked?)
|
metadata (assoc metadata :grid-alignment checked?)]
|
||||||
(udp/update-metadata id)
|
(st/emit! (udw/update-metadata id metadata))))
|
||||||
(st/emit!))))
|
|
||||||
(show-color-picker [event]
|
(show-color-picker [event]
|
||||||
(let [x (.-clientX event)
|
(let [x (.-clientX event)
|
||||||
y (.-clientY event)
|
y (.-clientY event)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue