mirror of
https://github.com/penpot/penpot.git
synced 2025-07-20 15:57:12 +02: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
|
: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))))))))
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue