https://github.com/controlroom/wired-show
(merge wire show)
https://github.com/controlroom/wired-show
Last synced: about 21 hours ago
JSON representation
(merge wire show)
- Host: GitHub
- URL: https://github.com/controlroom/wired-show
- Owner: controlroom
- License: epl-1.0
- Created: 2018-07-06T15:13:30.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-07-06T20:44:35.000Z (about 8 years ago)
- Last Synced: 2025-01-20T23:36:24.419Z (over 1 year ago)
- Language: Clojure
- Size: 10.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
**Wired Show**
Wire up Show dom elements.
## Simple usage
```clojure
(ns basic-wired.core
(:require
[show.core :as show]
[show.dom :as dom]
[wired-show.dom :as wired]
[wire.core :as w]))
(show/defcomponent Widget [component]
(render [{:keys [selected wire name]} _]
(dom/div
(wired/button wire name)
(when selected
(dom/p "You Selected me!")))))
(defn tapped-widget-wire [component]
(w/tap (w/wire)
:mouse-click #(show/assoc! component :selected-widget (:id %))))
(show/defcomponent App [component]
(initial-state
{:selected-widget nil
:widgets (for [i (range 20)] {:id i
:name (str "widget-" i)})
:wire (tapped-widget-wire component)})
(render [_ {:keys [widgets wire selected-widget]}]
(map (fn [{:keys [name id]}]
(Widget {:key id
:wire (w/lay wire nil {:id id})
:selected (= selected-widget id)
:name name}))
widgets)))
(show/render-to-dom
(App)
(.getElementById js/document "app"))
```
## License
Copyright © 2018 controlroom.io
Distributed under the Eclipse Public License either version 1.0 or (at
your option) any later version.