From ccc2e1c85d81c8e764383f59fb30d8115ab4627d Mon Sep 17 00:00:00 2001 From: Pierre-Yves Gerardy Date: Sun, 24 Jul 2016 14:10:30 +0200 Subject: [PATCH] Unmount and cleanly refresh mount points. --- api/mount.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/api/mount.js b/api/mount.js index 5f821b7c..cc16c81f 100644 --- a/api/mount.js +++ b/api/mount.js @@ -1,14 +1,26 @@ "use strict" +var Vnode = require("../render/vnode") var coreRenderer = require("../render/render") var autoredraw = require("../api/autoredraw") +var dummy = {view: function() {}} module.exports = function(renderer, pubsub) { return function(root, component) { + pubsub.unsubscribe(root.redraw) + 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() + + if (component === null) { + pubsub.unsubscribe(root.redraw) + delete root.redraw + } } }