-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathrender.js
More file actions
34 lines (24 loc) · 795 Bytes
/
render.js
File metadata and controls
34 lines (24 loc) · 795 Bytes
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
var document = require("global/document")
var start = require("./signal/start")
var foldp = require("./signal/foldp")
module.exports = render
function render(scenes, container) {
if (container === undefined) {
container = document.body
}
var surface = document.createElement("div")
var initial = typeof scenes === "function" ? scenes() : scenes
var elem = initial.create()
surface.appendChild(elem)
if (typeof scenes === "function") {
var main = foldp(scenes, function (previous, current) {
current.update(surface.firstChild, previous)
return current
}, initial)
start(main)
}
if (container !== false) {
container.insertBefore(surface, container.firstChild)
}
return surface
}