-
Notifications
You must be signed in to change notification settings - Fork 1
/
core.cljs
100 lines (87 loc) · 4.25 KB
/
core.cljs
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
(ns ^{:doc "Reacl core functionality."}
reacl.core
(:require [reacl2.core :as reacl2]
[cljsjs.react]
[cljsjs.react.dom]))
(def ^:static no-reaction reacl2/no-reaction)
(def ^:static pass-through-reaction reacl2/pass-through-reaction)
(def ^:static reaction reacl2/reaction)
(def ^:static invoke-reaction reacl2/invoke-reaction)
(def ^:static react-class reacl2/react-class)
(def ^:static has-class? reacl2/react-class)
(def ^:static opt reacl2/opt)
(def ^:static instantiate-toplevel reacl2/instantiate-toplevel)
(defprotocol ^:no-doc IReaclView
(-instantiate [clazz args]))
(defn render-component
[element clazz & args]
(if (satisfies? IReaclView clazz)
(js/ReactDOM.render
(-instantiate clazz args)
element)
(apply reacl2/render-component element clazz args)))
(def ^:static return reacl2/return)
(def ^:static send-message! reacl2/send-message!)
(defn ^:no-doc class->view
[clazz]
(let [react-class (reacl2/react-class clazz)
className (.-displayName react-class)
error-reaction
(fn [v]
(throw (str "Error: " className " tried to return an app-state, but it is a view. Use defclass for programm elements with an app-state.")))]
(reify
IFn
(-invoke [this]
(-instantiate this []))
(-invoke [this a1]
(-instantiate this [a1]))
(-invoke [this a1 a2]
(-instantiate this [a1 a2]))
(-invoke [this a1 a2 a3]
(-instantiate this [a1 a2 a3]))
(-invoke [this a1 a2 a3 a4]
(-instantiate this [a1 a2 a3 a4]))
(-invoke [this a1 a2 a3 a4 a5]
(-instantiate this [a1 a2 a3 a4 a5]))
(-invoke [this a1 a2 a3 a4 a5 a6]
(-instantiate this [a1 a2 a3 a4 a5 a6]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7 a8]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8 a9]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7 a8 a9]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8 a9 a10]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7 a8 a9 a10]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20]
(-instantiate this [a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20]))
(-invoke [this a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 rest]
(-instantiate this (concat [a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20] rest)))
IReaclView
(-instantiate [this args]
(reacl2/instantiate-embedded-internal-v1 clazz nil error-reaction args))
reacl2/IReaclClass
(-instantiate-toplevel-internal [this rst]
(reacl2/instantiate-toplevel-internal this false rst))
(-compute-locals [this app-state args]
#js [])
(-react-class [this] react-class)
)))