🐛 Fix initialize layout

This commit is contained in:
Andrés Moya 2020-11-04 14:47:27 +01:00 committed by Alonso Torres
parent 1bb4511dd3
commit fd1f42dc94
3 changed files with 18 additions and 19 deletions

View file

@ -85,7 +85,7 @@
:snap-grid :snap-grid
:dynamic-alignment}) :dynamic-alignment})
(def layout-flags (def layout-names
{:assets {:assets
{:del #{:sitemap :layers :document-history } {:del #{:sitemap :layers :document-history }
:add #{:assets}} :add #{:assets}}
@ -120,21 +120,20 @@
(declare ensure-layout) (declare ensure-layout)
(defn initialize-layout (defn initialize-layout
[layout] [layout-name]
(us/verify (s/nilable ::us/string) layout) (us/verify (s/nilable ::us/keyword) layout-name)
(ptk/reify ::initialize-layout (ptk/reify ::initialize-layout
ptk/UpdateEvent ptk/UpdateEvent
(update [_ state] (update [_ state]
(update state :worskpace-layout (update state :workspace-layout
(fn [layout] (fn [layout]
(merge default-layout layout)))) (or layout default-layout))))
ptk/WatchEvent ptk/WatchEvent
(watch [_ state stream] (watch [_ state stream]
(when layout (if (and layout-name (contains? layout-names layout-name))
(let [layout-flag (keyword layout)] (rx/of (ensure-layout layout-name))
(when (contains? layout-flags layout-flag) (rx/of (ensure-layout :layers))))))
(rx/of (ensure-layout layout-flag))))))))
(defn initialize-file (defn initialize-file
[project-id file-id] [project-id file-id]
@ -416,16 +415,16 @@
;; --- Toggle layout flag ;; --- Toggle layout flag
(defn ensure-layout (defn ensure-layout
[layout] [layout-name]
(assert (contains? layout-flags layout) (assert (contains? layout-names layout-name)
(str "unexpected layout name: " layout)) (str "unexpected layout name: " layout-name))
(ptk/reify ::ensure-layout (ptk/reify ::ensure-layout
ptk/UpdateEvent ptk/UpdateEvent
(update [_ state] (update [_ state]
(update state :workspace-layout (update state :workspace-layout
(fn [stored] (fn [stored]
(let [todel (get-in layout-flags [layout :del] #{}) (let [todel (get-in layout-names [layout-name :del] #{})
toadd (get-in layout-flags [layout :add] #{})] toadd (get-in layout-names [layout-name :add] #{})]
(-> stored (-> stored
(set/difference todel) (set/difference todel)
(set/union toadd)))))))) (set/union toadd))))))))

View file

@ -150,11 +150,11 @@
(let [project-id (uuid (get-in route [:params :path :project-id])) (let [project-id (uuid (get-in route [:params :path :project-id]))
file-id (uuid (get-in route [:params :path :file-id])) file-id (uuid (get-in route [:params :path :file-id]))
page-id (uuid (get-in route [:params :query :page-id])) page-id (uuid (get-in route [:params :query :page-id]))
layout (get-in route [:params :query :layout])] layout-name (get-in route [:params :query :layout])]
[:& workspace/workspace {:project-id project-id [:& workspace/workspace {:project-id project-id
:file-id file-id :file-id file-id
:page-id page-id :page-id page-id
:layout layout :layout-name (keyword layout-name)
:key file-id}]) :key file-id}])
:not-authorized :not-authorized

View file

@ -99,10 +99,10 @@
i/loader-pencil]) i/loader-pencil])
(mf/defc workspace (mf/defc workspace
[{:keys [project-id file-id page-id layout] :as props}] [{:keys [project-id file-id page-id layout-name] :as props}]
(mf/use-effect (mf/use-effect
(mf/deps layout) (mf/deps layout-name)
#(st/emit! (dw/initialize-layout layout))) #(st/emit! (dw/initialize-layout layout-name)))
(mf/use-effect (mf/use-effect
(mf/deps project-id file-id) (mf/deps project-id file-id)