monadic_react
Version:
A monadic library for easily composing React-based libraries.
60 lines • 5.19 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
var React = require("react");
var core_1 = require("../react_monad/core");
var List = /** @class */ (function (_super) {
__extends(List, _super);
function List(props, context) {
var _this = _super.call(this, props, context) || this;
_this.state = { ps: "creating" };
return _this;
}
List.prototype.componentWillReceiveProps = function (new_props) {
this.setState(__assign({}, this.state, { ps: new_props.items.map(function (item, index) {
return new_props.renderer(index)(item).comp(new_props.context)(function (callback) { return function (new_value) {
return new_props.cont(callback)(new_value);
}; });
}).toList() }));
};
List.prototype.componentWillMount = function () {
var _this = this;
this.setState(__assign({}, this.state, { ps: this.props.items.map(function (item, index) {
return _this.props.renderer(index)(item).comp(_this.props.context)(function (callback) { return function (new_value) {
return _this.props.cont(callback)(new_value);
}; });
}).toList() }));
};
List.prototype.render = function () {
return React.createElement("div", { className: "monadic-list " + (this.props.className || "") },
" ",
this.state.ps != "creating" ? this.state.ps : [],
" ");
};
return List;
}(React.Component));
exports.list = function (items, key, className, dbg) {
return function (renderer) { return core_1.make_C(function (context) { return function (cont) {
return React.createElement(List, { kind: "list",
items: items, renderer: renderer,
cont: cont, context: context, key: key, className: className, debug_info: dbg });
}; }); };
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWFjdF9tb25hZC9saXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZCQUE4QjtBQUc5Qiw0Q0FBMEU7QUFZMUU7SUFBd0Isd0JBQThDO0lBQ3BFLGNBQVksS0FBb0IsRUFBQyxPQUFXO1FBQTVDLFlBQ0Usa0JBQU0sS0FBSyxFQUFFLE9BQU8sQ0FBQyxTQUV0QjtRQURDLEtBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUMsVUFBVSxFQUFFLENBQUE7O0lBQ2hDLENBQUM7SUFDRCx3Q0FBeUIsR0FBekIsVUFBMEIsU0FBd0I7UUFDaEQsSUFBSSxDQUFDLFFBQVEsY0FBSyxJQUFJLENBQUMsS0FBSyxJQUMxQixFQUFFLEVBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBQyxJQUFJLEVBQUUsS0FBSztnQkFDL0IsT0FBQSxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBQSxRQUFRLElBQUksT0FBQSxVQUFBLFNBQVM7b0JBQzNFLE9BQUEsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQW5DLENBQW1DLEVBRCtCLENBQy9CLENBQUM7WUFEdEMsQ0FDc0MsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFFLENBQUE7SUFDMUQsQ0FBQztJQUNELGlDQUFrQixHQUFsQjtRQUFBLGlCQUtDO1FBSkMsSUFBSSxDQUFDLFFBQVEsY0FBSyxJQUFJLENBQUMsS0FBSyxJQUMxQixFQUFFLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQUMsSUFBSSxFQUFFLEtBQUs7Z0JBQ2hDLE9BQUEsS0FBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBQSxRQUFRLElBQUksT0FBQSxVQUFBLFNBQVM7b0JBQzdFLE9BQUEsS0FBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUFwQyxDQUFvQyxFQURnQyxDQUNoQyxDQUFDO1lBRHZDLENBQ3VDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBRSxDQUFBO0lBQzNELENBQUM7SUFDRCxxQkFBTSxHQUFOO1FBQ0UsT0FBTyw2QkFBSyxTQUFTLEVBQUUsbUJBQWdCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBRTs7WUFBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUFTLENBQUE7SUFDbkksQ0FBQztJQUNILFdBQUM7QUFBRCxDQUFDLEFBcEJELENBQXdCLEtBQUssQ0FBQyxTQUFTLEdBb0J0QztBQUVVLFFBQUEsSUFBSSxHQUFHLFVBQWMsS0FBdUIsRUFBRSxHQUFXLEVBQUUsU0FBaUIsRUFBRSxHQUFpQjtJQUN4RyxPQUFPLFVBQUEsUUFBUSxJQUFJLE9BQUEsYUFBTSxDQUFJLFVBQUEsT0FBTyxJQUFJLE9BQUEsVUFBQSxJQUFJO1FBQ3RDLE9BQUEsS0FBSyxDQUFDLGFBQWEsQ0FBaUIsSUFBSSxFQUN0QyxFQUFFLElBQUksRUFBQyxNQUFNO1lBQ1gsS0FBSyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsUUFBUTtZQUM5QixJQUFJLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQztJQUgvRSxDQUcrRSxFQUo3QyxDQUk2QyxDQUFDLEVBSm5FLENBSW1FLENBQUE7QUFDeEYsQ0FBQyxDQUFBIn0=