boa-handler-dom
Version:
A b-o-a handler for rendering to DOM
25 lines (24 loc) • 1.07 kB
JavaScript
// RenderAction -> render -> render to DOM
;
var do_1 = require('rxjs/operator/do');
var filter_1 = require('rxjs/operator/filter');
var share_1 = require('rxjs/operator/share');
var dom_1 = require('./dom');
var boa_vdom_1 = require('boa-vdom');
var init = function (domOptions) {
var handler = function (action$, options) {
var root = domOptions.root, render = domOptions.render, renderActionType = domOptions.renderActionType;
var type = renderActionType ? renderActionType : 'render';
var dom = new dom_1.DOM(root);
var re = options.re;
return share_1.share.call(filter_1.filter.call(do_1._do.call(filter_1.filter.call(action$, function (action) { return action.type === type; }), function (action) {
var state = action.data;
var vtree = render(state, { create: boa_vdom_1.create, e: re });
dom.renderToDOM(vtree);
}), function () { return false; } // remove all
// remove all
));
};
return { handler: handler };
};
exports.init = init;