mirror of
https://github.com/penpot/penpot.git
synced 2025-03-15 17:21:17 -05:00
🐛 Fix initialize layout
This commit is contained in:
parent
1bb4511dd3
commit
fd1f42dc94
3 changed files with 18 additions and 19 deletions
|
@ -85,7 +85,7 @@
|
|||
:snap-grid
|
||||
:dynamic-alignment})
|
||||
|
||||
(def layout-flags
|
||||
(def layout-names
|
||||
{:assets
|
||||
{:del #{:sitemap :layers :document-history }
|
||||
:add #{:assets}}
|
||||
|
@ -120,21 +120,20 @@
|
|||
(declare ensure-layout)
|
||||
|
||||
(defn initialize-layout
|
||||
[layout]
|
||||
(us/verify (s/nilable ::us/string) layout)
|
||||
[layout-name]
|
||||
(us/verify (s/nilable ::us/keyword) layout-name)
|
||||
(ptk/reify ::initialize-layout
|
||||
ptk/UpdateEvent
|
||||
(update [_ state]
|
||||
(update state :worskpace-layout
|
||||
(update state :workspace-layout
|
||||
(fn [layout]
|
||||
(merge default-layout layout))))
|
||||
(or layout default-layout))))
|
||||
|
||||
ptk/WatchEvent
|
||||
(watch [_ state stream]
|
||||
(when layout
|
||||
(let [layout-flag (keyword layout)]
|
||||
(when (contains? layout-flags layout-flag)
|
||||
(rx/of (ensure-layout layout-flag))))))))
|
||||
(if (and layout-name (contains? layout-names layout-name))
|
||||
(rx/of (ensure-layout layout-name))
|
||||
(rx/of (ensure-layout :layers))))))
|
||||
|
||||
(defn initialize-file
|
||||
[project-id file-id]
|
||||
|
@ -416,16 +415,16 @@
|
|||
;; --- Toggle layout flag
|
||||
|
||||
(defn ensure-layout
|
||||
[layout]
|
||||
(assert (contains? layout-flags layout)
|
||||
(str "unexpected layout name: " layout))
|
||||
[layout-name]
|
||||
(assert (contains? layout-names layout-name)
|
||||
(str "unexpected layout name: " layout-name))
|
||||
(ptk/reify ::ensure-layout
|
||||
ptk/UpdateEvent
|
||||
(update [_ state]
|
||||
(update state :workspace-layout
|
||||
(fn [stored]
|
||||
(let [todel (get-in layout-flags [layout :del] #{})
|
||||
toadd (get-in layout-flags [layout :add] #{})]
|
||||
(let [todel (get-in layout-names [layout-name :del] #{})
|
||||
toadd (get-in layout-names [layout-name :add] #{})]
|
||||
(-> stored
|
||||
(set/difference todel)
|
||||
(set/union toadd))))))))
|
||||
|
|
|
@ -150,11 +150,11 @@
|
|||
(let [project-id (uuid (get-in route [:params :path :project-id]))
|
||||
file-id (uuid (get-in route [:params :path :file-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
|
||||
:file-id file-id
|
||||
:page-id page-id
|
||||
:layout layout
|
||||
:layout-name (keyword layout-name)
|
||||
:key file-id}])
|
||||
|
||||
:not-authorized
|
||||
|
|
|
@ -99,10 +99,10 @@
|
|||
i/loader-pencil])
|
||||
|
||||
(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/deps layout)
|
||||
#(st/emit! (dw/initialize-layout layout)))
|
||||
(mf/deps layout-name)
|
||||
#(st/emit! (dw/initialize-layout layout-name)))
|
||||
|
||||
(mf/use-effect
|
||||
(mf/deps project-id file-id)
|
||||
|
|
Loading…
Add table
Reference in a new issue