diff --git a/frontend/src/uxbox/main/data/workspace.cljs b/frontend/src/uxbox/main/data/workspace.cljs index 89f904c00..bdd818155 100644 --- a/frontend/src/uxbox/main/data/workspace.cljs +++ b/frontend/src/uxbox/main/data/workspace.cljs @@ -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] diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/options/page.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/options/page.cljs index 911a28fed..9ea561379 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/options/page.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/options/page.cljs @@ -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?)]