/
Native.purs
108 lines (85 loc) · 2.07 KB
/
Native.purs
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
101
102
103
104
105
106
107
108
module Oak.VirtualDom.Native where
import Effect (Effect)
import Data.Function.Uncurried
( Fn1
, Fn3
, runFn1
, runFn3
)
import Oak.Document
( Node
)
foreign import data Tree :: Type
foreign import data NativeAttrs :: Type
foreign import emptyAttrs :: NativeAttrs
foreign import patchImpl ::
Fn3 Tree Tree Node (Effect Node)
patch ::
Tree
-> Tree
-> Node
-> Effect Node
patch = runFn3 patchImpl
foreign import createRootNodeImpl ::
Fn1 Tree Node
createRootNode ::
Tree -> Node
createRootNode = runFn1 createRootNodeImpl
foreign import concatSimpleAttrImpl ::
Fn3 String String NativeAttrs NativeAttrs
concatSimpleAttr ::
String
-> String
-> NativeAttrs
-> NativeAttrs
concatSimpleAttr = runFn3 concatSimpleAttrImpl
foreign import concatBooleanAttrImpl ::
Fn3 String Boolean NativeAttrs NativeAttrs
concatBooleanAttr ::
String
-> Boolean
-> NativeAttrs
-> NativeAttrs
concatBooleanAttr = runFn3 concatBooleanAttrImpl
foreign import concatDataAttrImpl ::
Fn3 String String NativeAttrs NativeAttrs
concatDataAttr ::
String
-> String
-> NativeAttrs
-> NativeAttrs
concatDataAttr = runFn3 concatDataAttrImpl
foreign import concatHandlerFunImpl :: ∀ eff event.
Fn3 String (event -> eff) NativeAttrs NativeAttrs
concatHandlerFun :: ∀ eff event.
String
-> (event -> eff)
-> NativeAttrs
-> NativeAttrs
concatHandlerFun = runFn3 concatHandlerFunImpl
foreign import concatEventTargetValueHandlerFunImpl :: ∀ eff event.
Fn3 String (event -> eff) NativeAttrs NativeAttrs
concatEventTargetValueHandlerFun :: ∀ eff event.
String
-> (event -> eff)
-> NativeAttrs
-> NativeAttrs
concatEventTargetValueHandlerFun = runFn3 concatEventTargetValueHandlerFunImpl
foreign import textImpl ::
Fn1 String (Effect Tree)
text ::
String
-> Effect Tree
text = runFn1 textImpl
foreign import renderImpl ::
Fn3
String
NativeAttrs
( Effect (Array Tree) )
( Effect Tree )
render ::
String
-> NativeAttrs
-> Effect (Array Tree)
-> Effect Tree
render = runFn3 renderImpl