0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-02-10 09:08:31 -05:00

Delay grid alignment index initialization until user stop typing.

This commit is contained in:
Andrey Antukh 2016-12-18 21:51:51 +01:00
parent 32041b9596
commit 74bcdd2507
No known key found for this signature in database
GPG key ID: 4DFEBCB8316A8B95
2 changed files with 24 additions and 13 deletions

View file

@ -206,21 +206,32 @@
;; --- Initialize Alignment Index
(declare initialize-alignment?)
(defrecord InitializeAlignment [id]
ptk/WatchEvent
(watch [_ state s]
(watch [_ state stream]
(let [page (get-in state [:pages id])
opts (:metadata page)
message {:cmd :grid-init
:width c/viewport-width
:height c/viewport-height
:x-axis (:grid-x-axis opts c/grid-x-axis)
:y-axis (:grid-y-axis opts c/grid-y-axis)}]
(rx/merge
(->> (uw/send! worker message)
(rx/map #(activate-flag :grid-indexed)))
(when (:grid-alignment opts)
(rx/of (activate-flag :grid-alignment)))))))
:y-axis (:grid-y-axis opts c/grid-y-axis)}
stoper (->> (rx/filter initialize-alignment? stream)
(rx/take 1))]
(->> (rx/just nil)
(rx/delay 1000)
(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
[id]

View file

@ -82,16 +82,16 @@
(when-let [value (-> (mx/ref-node own "x-axis")
(dom/get-value)
(parse-int nil))]
(->> (assoc metadata :grid-x-axis value)
(udp/update-metadata id)
(st/emit!))))
(st/emit!
(->> (assoc metadata :grid-x-axis value)
(udw/update-metadata id)))))
(on-y-change []
(when-let [value (-> (mx/ref-node own "y-axis")
(dom/get-value)
(parse-int nil))]
(->> (assoc metadata :grid-y-axis value)
(udp/update-metadata id)
(st/emit!))))
(st/emit!
(->> (assoc metadata :grid-y-axis value)
(udw/update-metadata id)))))
(on-magnet-change []
(let [checked? (dom/checked? (mx/ref-node own "magnet"))
metadata (assoc metadata :grid-alignment checked?)]