-
Notifications
You must be signed in to change notification settings - Fork 3
/
dom.clj
63 lines (57 loc) · 1.61 KB
/
dom.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
(ns om-bootstrap.dom)
(def tags
'[[Accordion accordion]
[Affix affix]
[Alert alert]
[Badge badge]
[Button button]
[ButtonGroup button-group]
[ButtonToolbar button-toolbar]
[Carousel carousel]
[CarouselItem carousel-item]
[Col col]
[DropdownButton dropdown-button]
[DropdownMenu dropdown-menu]
[Glyphicon glyphicon]
[Grid grid]
[Input input]
[Jumbotron jumbotron]
[Label label]
[MenuItem menu-item]
[Modal modal]
[ModalTrigger modal-trigger]
[Nav nav]
[Navbar navbar]
[NavItem nav-item]
[OverlayTrigger overlay-trigger]
[PageHeader page-header]
[Panel panel]
[PanelGroup panel-group]
[Popover popover]
[ProgressBar progress-bar]
[Row row]
[SplitButton split-button]
[SubNav sub-nav]
[TabbedArea tabbed-area]
[TabPane tab-pane]
[Tooltip tooltip]
[Well well]])
(defn ^:private gen-react-dom-inline-fn [tag]
`(defmacro ~(second tag) [opts# & children#]
`(~'~(symbol "js"
(str "ReactBootstrap."
(name (first tag)))) ~opts# ~@children#)))
(defmacro ^:private gen-react-dom-inline-fns []
`(do
~@(clojure.core/map gen-react-dom-inline-fn tags)))
(gen-react-dom-inline-fns)
(defn ^:private gen-react-dom-fn [tag]
`(defn ~(second tag) [opts# & children#]
(.apply ~(symbol "js"
(str "ReactBootstrap."
(name (first tag))))
nil
(cljs.core/into-array (cons opts# children#)))))
(defmacro ^:private gen-react-dom-fns []
`(do
~@(clojure.core/map gen-react-dom-fn tags)))