Skip to content

Commit 2034772

Browse files
committed
data persistance is serialized a json
1 parent 76e663a commit 2034772

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

src/cljc/auto_web/components/lang.cljc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
(ns auto-web.components.lang
22
"Language based components"
33
(:require
4-
#?(:cljs [auto-web.local-storage :refer [set-item!]]
4+
#?(:cljs [auto-web.local-storage :refer [set-ls!]]
55
:clj [auto-web.http-request.lang :refer [update-cookie-language]])))
66

77

88
#?(:cljs (defn- update-lang-opts
99
[on-lang-change l]
10-
{:on-click #(do (set-item! :lang l) (when on-lang-change (on-lang-change l)))})
10+
{:on-click #(do (set-ls! :lang l) (when on-lang-change (on-lang-change l)))})
1111
:clj (defn- update-lang-opts [_ l] {:onclick (update-cookie-language l)}))
1212

1313
(defn clang-bar
Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,30 @@
1-
(ns auto-web.local-storage)
1+
(ns auto-web.local-storage
2+
"Provide data persistance in local storage for clojurescript."
3+
(:require
4+
[re-frame.core :as rf]))
25

3-
(defn set-item!
6+
(defn set-ls!
47
"Set `key` in browser's localStorage to `val`."
58
[key val]
6-
(.setItem (.-localStorage js/window) key val))
9+
(.setItem js/localStorage key (js/JSON.stringify (clj->js val))))
710

8-
(defn get-item
11+
(defn get-ls
912
"Returns value of `key` from browser's localStorage."
1013
[key]
11-
(.getItem (.-localStorage js/window) key))
14+
(some-> (.getItem js/localStorage key)
15+
(js/JSON.parse)
16+
(js->clj :keywordize-keys true)))
1217

1318
(defn remove-item!
1419
"Remove the browser's localStorage value for the given `key`"
1520
[key]
1621
(.removeItem (.-localStorage js/window) key))
22+
23+
(comment
24+
(set-ls! "cooc"
25+
{:a 12
26+
:b "foo"})
27+
(get-ls "cooc")
28+
(rf/dispatch [::save-to-ls [:auto-sim.canvas/canvas :canvas-1]])
29+
;
30+
)

0 commit comments

Comments
 (0)