Unmount and cleanly refresh mount points.

This commit is contained in:
Pierre-Yves Gerardy 2016-07-24 14:10:30 +02:00
parent 37e7b67a49
commit ccc2e1c85d

View file

@ -1,14 +1,26 @@
"use strict" "use strict"
var Vnode = require("../render/vnode")
var coreRenderer = require("../render/render") var coreRenderer = require("../render/render")
var autoredraw = require("../api/autoredraw") var autoredraw = require("../api/autoredraw")
var dummy = {view: function() {}}
module.exports = function(renderer, pubsub) { module.exports = function(renderer, pubsub) {
return function(root, component) { return function(root, component) {
pubsub.unsubscribe(root.redraw)
var run = autoredraw(root, renderer, pubsub, function() { var run = autoredraw(root, renderer, pubsub, function() {
renderer.render(root, {tag: component}) renderer.render(
root,
Vnode(component === null ? dummy : component, undefined, undefined, undefined, undefined, undefined)
)
}) })
run() run()
if (component === null) {
pubsub.unsubscribe(root.redraw)
delete root.redraw
}
} }
} }