mirror of
https://github.com/penpot/penpot.git
synced 2025-02-12 18:18:24 -05:00
Add colors collections persistence.
This commit is contained in:
parent
f37986d5c1
commit
d1fc7959a1
2 changed files with 27 additions and 7 deletions
|
@ -13,6 +13,7 @@
|
||||||
"Initialize the storage subsystem."
|
"Initialize the storage subsystem."
|
||||||
[]
|
[]
|
||||||
(let [lens (l/select-keys [:pages-by-id
|
(let [lens (l/select-keys [:pages-by-id
|
||||||
|
:colors-by-id
|
||||||
:projects-by-id])
|
:projects-by-id])
|
||||||
stream (->> (l/focus-atom lens st/state)
|
stream (->> (l/focus-atom lens st/state)
|
||||||
(rx/from-atom)
|
(rx/from-atom)
|
||||||
|
|
|
@ -7,6 +7,30 @@
|
||||||
[uxbox.data.projects :as dp]
|
[uxbox.data.projects :as dp]
|
||||||
[bouncer.validators :as v]))
|
[bouncer.validators :as v]))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Helpers
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(defn assoc-color
|
||||||
|
"A reduce function for assoc the project
|
||||||
|
to the state map."
|
||||||
|
[state color-coll]
|
||||||
|
(let [uuid (:id color-coll)]
|
||||||
|
(update-in state [:colors-by-id] assoc uuid color-coll)))
|
||||||
|
|
||||||
|
(defn persist-state
|
||||||
|
[state]
|
||||||
|
(let [pages (into #{} (vals (:pages-by-id state)))
|
||||||
|
projects (into #{} (vals (:projects-by-id state)))
|
||||||
|
color-colls (into #{} (vals (:colors-by-id state)))]
|
||||||
|
(assoc! local-storage :data {:pages pages
|
||||||
|
:projects projects
|
||||||
|
:color-collections color-colls})))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Events
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(defn load-data
|
(defn load-data
|
||||||
"Load data from local storage."
|
"Load data from local storage."
|
||||||
[]
|
[]
|
||||||
|
@ -16,12 +40,7 @@
|
||||||
(if-let [data (get local-storage :data nil)]
|
(if-let [data (get local-storage :data nil)]
|
||||||
(as-> state $
|
(as-> state $
|
||||||
(reduce dp/assoc-project $ (:projects data))
|
(reduce dp/assoc-project $ (:projects data))
|
||||||
(reduce dp/assoc-page $ (:pages data)))
|
(reduce dp/assoc-page $ (:pages data))
|
||||||
|
(reduce assoc-color $ (:color-collections data)))
|
||||||
state))))
|
state))))
|
||||||
|
|
||||||
(defn persist-state
|
|
||||||
[state]
|
|
||||||
(let [pages (into #{} (vals (:pages-by-id state)))
|
|
||||||
projects (into #{} (vals (:projects-by-id state)))]
|
|
||||||
(assoc! local-storage :data {:pages pages
|
|
||||||
:projects projects})))
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue