mirror of
https://github.com/penpot/penpot.git
synced 2025-02-13 18:48:37 -05:00
Delay grid alignment index initialization until user stop typing.
This commit is contained in:
parent
32041b9596
commit
74bcdd2507
2 changed files with 24 additions and 13 deletions
|
@ -206,21 +206,32 @@
|
||||||
|
|
||||||
;; --- Initialize Alignment Index
|
;; --- Initialize Alignment Index
|
||||||
|
|
||||||
|
(declare initialize-alignment?)
|
||||||
|
|
||||||
(defrecord InitializeAlignment [id]
|
(defrecord InitializeAlignment [id]
|
||||||
ptk/WatchEvent
|
ptk/WatchEvent
|
||||||
(watch [_ state s]
|
(watch [_ state stream]
|
||||||
(let [page (get-in state [:pages id])
|
(let [page (get-in state [:pages id])
|
||||||
opts (:metadata page)
|
opts (:metadata page)
|
||||||
message {:cmd :grid-init
|
message {:cmd :grid-init
|
||||||
:width c/viewport-width
|
:width c/viewport-width
|
||||||
:height c/viewport-height
|
:height c/viewport-height
|
||||||
:x-axis (:grid-x-axis opts c/grid-x-axis)
|
:x-axis (:grid-x-axis opts c/grid-x-axis)
|
||||||
:y-axis (:grid-y-axis opts c/grid-y-axis)}]
|
:y-axis (:grid-y-axis opts c/grid-y-axis)}
|
||||||
(rx/merge
|
stoper (->> (rx/filter initialize-alignment? stream)
|
||||||
(->> (uw/send! worker message)
|
(rx/take 1))]
|
||||||
(rx/map #(activate-flag :grid-indexed)))
|
(->> (rx/just nil)
|
||||||
(when (:grid-alignment opts)
|
(rx/delay 1000)
|
||||||
(rx/of (activate-flag :grid-alignment)))))))
|
(rx/take-until stoper)
|
||||||
|
(rx/flat-map (fn [_]
|
||||||
|
(rx/merge (->> (uw/send! worker message)
|
||||||
|
(rx/map #(activate-flag :grid-indexed)))
|
||||||
|
(when (:grid-alignment opts)
|
||||||
|
(rx/of (activate-flag :grid-alignment))))))))))
|
||||||
|
|
||||||
|
(defn initialize-alignment?
|
||||||
|
[v]
|
||||||
|
(instance? InitializeAlignment v))
|
||||||
|
|
||||||
(defn initialize-alignment
|
(defn initialize-alignment
|
||||||
[id]
|
[id]
|
||||||
|
|
|
@ -82,16 +82,16 @@
|
||||||
(when-let [value (-> (mx/ref-node own "x-axis")
|
(when-let [value (-> (mx/ref-node own "x-axis")
|
||||||
(dom/get-value)
|
(dom/get-value)
|
||||||
(parse-int nil))]
|
(parse-int nil))]
|
||||||
(->> (assoc metadata :grid-x-axis value)
|
(st/emit!
|
||||||
(udp/update-metadata id)
|
(->> (assoc metadata :grid-x-axis value)
|
||||||
(st/emit!))))
|
(udw/update-metadata id)))))
|
||||||
(on-y-change []
|
(on-y-change []
|
||||||
(when-let [value (-> (mx/ref-node own "y-axis")
|
(when-let [value (-> (mx/ref-node own "y-axis")
|
||||||
(dom/get-value)
|
(dom/get-value)
|
||||||
(parse-int nil))]
|
(parse-int nil))]
|
||||||
(->> (assoc metadata :grid-y-axis value)
|
(st/emit!
|
||||||
(udp/update-metadata id)
|
(->> (assoc metadata :grid-y-axis value)
|
||||||
(st/emit!))))
|
(udw/update-metadata id)))))
|
||||||
(on-magnet-change []
|
(on-magnet-change []
|
||||||
(let [checked? (dom/checked? (mx/ref-node own "magnet"))
|
(let [checked? (dom/checked? (mx/ref-node own "magnet"))
|
||||||
metadata (assoc metadata :grid-alignment checked?)]
|
metadata (assoc metadata :grid-alignment checked?)]
|
||||||
|
|
Loading…
Add table
Reference in a new issue