23 lines
601 B
JavaScript
23 lines
601 B
JavaScript
"use strict"
|
|
|
|
var Vnode = require("../render/vnode")
|
|
var autoredraw = require("../api/autoredraw")
|
|
|
|
module.exports = function(renderer, pubsub) {
|
|
return function(root, component) {
|
|
if (component === null) {
|
|
renderer.render(root, [])
|
|
pubsub.unsubscribe(root.redraw)
|
|
delete root.redraw
|
|
return
|
|
}
|
|
|
|
if (component.view == null) throw new Error("m.mount(element, component) expects a component, not a vnode")
|
|
|
|
var run = autoredraw(root, renderer, pubsub, function() {
|
|
renderer.render(root, Vnode(component, undefined, undefined, undefined, undefined, undefined))
|
|
})
|
|
|
|
run()
|
|
}
|
|
}
|