Skip to content

Instantly share code, notes, and snippets.

@viebel
Last active November 19, 2020 10:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save viebel/aea3dad2de27c25121d1914d606d4087 to your computer and use it in GitHub Desktop.
Save viebel/aea3dad2de27c25121d1914d606d4087 to your computer and use it in GitHub Desktop.
(ns simple.core
(:require
[reagent.core :as reagent :refer-macros [with-let]]
[reagent.dom :refer [render]]))
(def my-org
{:name "nestle"
:description "bla bla bla"
:children [{:name "Choco"
:description "woo"}
{:name "Moka"
:description "boo"
:children [{:name "Elite"
:description "YESH"}]}]})
(defn org-tree [org]
(with-let [opened (reagent/atom false)]
(if @opened
[:div
[:div {:onClick #(do
(println "close" (:name org))
(reset! opened false)
)}
"Name: "(:name org)]
[:div "Description: " (:description org)]
[:ul
(for [child (:children org)]
[:li [org-tree child]])]]
[:div {:onClick #(do
(println "open" (:name org))
(reset! opened true)
)}
"> " (:name org)])))
(defn ui []
[org-tree my-org])
;; do not touch
(render [ui] js/klipse-container)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment