-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
executable file
·104 lines (87 loc) · 1.98 KB
/
index.js
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
const Wow = () => {
return createNode('h2', null, 'Nice one!');
};
const Form = () => {
return createNode(
'form',
{
onSubmit: e => {
e.preventDefault();
console.log(e.target);
}
},
createNode('input', { type: 'password' }),
createNode('input'),
createNode('input'),
createNode('input'),
createNode('button', { type: 'submit' }, 'nice'),
createNode(Wow),
createNode(NewTing)
);
};
const ShowCount = ({ count }) => createNode('h1', null, `Count: ${count}`);
const Test = () => {
let count = 0;
return render => {
const onClick = () => {
count = count + 1;
render();
};
return createNode('div', { onClick }, createNode(ShowCount, { count }));
};
};
const NewTing = () => {
let state = 0;
return render => {
const onClick = () => {
state = state + 1;
render();
};
return state > 10 ? createNode(Form) : createNode('h2', { onClick }, state);
};
};
const Ting = props => {
let count = 0;
return render => {
const onClick = () => {
count = count + 1;
render();
};
return createNode('h1', { onClick }, `Fragment test! ${count}`);
};
};
const Child = ({ onClick, state }) => {
return [
createNode('h2', { onClick }, `Child Test ${state}`),
createNode('h2', { onClick }, `Child Test 2 ${state}`)
];
};
const ChildTest = () => {
let state = 1;
return render => {
const onClick = () => {
state = state + 1;
render();
};
return createNode('div', null, createNode(Child, { onClick, state }));
};
};
const App = () =>
createNode(
'div',
null,
createNode(Test),
createNode(Test),
createNode(Test),
createNode(Ting),
createNode(Test),
createNode(Test),
createNode(Test),
createNode(Test),
createNode(Form),
createNode(NewTing),
createNode(Ting),
createNode(ChildTest)
);
const main = document.getElementById('main');
createNode(main, null, createNode(App));