Expand and collapse data structures

This commit is contained in:
chris (daiyi) 2017-09-19 16:57:58 +02:00 committed by Daniel Compton
parent 32f5699f7f
commit 4c5b4b8194
1 changed files with 21 additions and 8 deletions

View File

@ -48,17 +48,30 @@
(into (view data) (mapv crawl data))
(view data)))
(declare jsonml->hiccup)
(defn data-structure
[jsonml]
(let [expand? (r/atom true)]
(fn []
[:span.re-frame-trace--object
{:on-click #(swap! expand? not)}
(jsonml->hiccup (if @expand?
(cljs-devtools/body-api-call
(.-object (get jsonml 1))
(.-config (get jsonml 1)))
(cljs-devtools/header-api-call
(.-object (get jsonml 1))
(.-config (get jsonml 1)))))])))
(defn jsonml->hiccup
[jsonml]
(cond
(array? jsonml) (if (= "object" (get jsonml 0))
[:span.re-frame-trace--object
(jsonml->hiccup (cljs-devtools/body-api-call
(.-object (get jsonml 1))
(.-config (get jsonml 1))))]
(mapv jsonml->hiccup jsonml))
(object? jsonml) {:style (string->css (js->clj jsonml))}
:else (str->hiccup jsonml)))
(and (array? jsonml)
(= "object" (get jsonml 0))) [data-structure jsonml]
(array? jsonml) (mapv jsonml->hiccup jsonml)
(object? jsonml) {:style (string->css (js->clj jsonml))}
:else (str->hiccup jsonml)))
(defn tab [data]
[:div {:style {:flex "1 0 auto" :width "100%" :height "100%" :display "flex" :flex-direction "column"}}