From 8c64c7c3eb0a32e78fb7903ef37a010a28e1c2e8 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Sun, 27 Mar 2016 18:31:25 +0300 Subject: [PATCH] Do not send page updates when historic item is selected. --- src/uxbox/ui/workspace.cljs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/uxbox/ui/workspace.cljs b/src/uxbox/ui/workspace.cljs index d718338fc2..d068e4127e 100644 --- a/src/uxbox/ui/workspace.cljs +++ b/src/uxbox/ui/workspace.cljs @@ -28,22 +28,32 @@ ;; Workspace ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defn focus-page +(defn- focus-page [id] (as-> (ul/getter #(stpr/pack-page % id)) $ (l/focus-atom $ st/state))) -(defn on-page-change +;; TODO: move out of UI. + +(defn- on-page-change [buffer] + #_(println "on-page-change" buffer) (let [page (second buffer)] (rs/emit! (udp/update-page page)))) -(defn subscribe-to-page-changes +(defn- subscribe-to-page-changes [pageid] (as-> (focus-page pageid) $ (rx/from-atom $) - (rx/dedupe #(dissoc % :version) $) (rx/debounce 1000 $) + (rx/scan (fn [acc page] + #_(println "change:" (:version acc) "->" (:version page)) + (let [result (if (>= (:version page) (:version acc)) + page + acc)] + ;; (println "!!!" (:version result)) + result)) $) + (rx/dedupe #(dissoc % :version) $) (rx/buffer 2 1 $) (rx/subscribe $ on-page-change #(throw %))))