UNPKG

bobflux

Version:

Bobflux is pure functional implementation of FLUX architecture.

35 lines (34 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var b = require("bobril"); var f = require("fun-model"); var c = require("./common"); function createDataComponent(component) { return function (innerCursor) { return b.createDerivedComponent(b.createVirtualComponent({ init: function (ctx) { if (c.isCursor(innerCursor)) { ctx.cursor = innerCursor; ctx.state = f.getState(ctx.cursor); } else { Object.keys(innerCursor).forEach(function (ck) { ctx[c.unifyCursorName(ck)] = innerCursor[ck]; ctx[c.unifyStateName(ck)] = f.getState(innerCursor[ck]); }); } }, render: function (ctx) { if (c.isCursor(innerCursor)) { ctx.state = f.getState(ctx.cursor); } else { Object.keys(innerCursor).forEach(function (ck) { ctx[c.unifyStateName(ck)] = f.getState(innerCursor[ck]); }); } } }), component); }; } exports.createDataComponent = createDataComponent;