mithril-vndb/api/mount.js
2016-10-27 20:28:33 -04:00

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()
}
}