catreact
Version:
Catavolt Core React Components
55 lines (54 loc) • 2.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Created by rburson on 2/12/16.
*/
var React = require("react");
var catreact_core_1 = require("./catreact-core");
var catavolt_sdk_1 = require("catavolt-sdk");
/*
***************************************************
* Render a QueryContext
***************************************************
*/
exports.CvRecordList = React.createClass({
mixins: [catreact_core_1.CvBaseMixin],
getChildContext: function () {
var ctx = this.getDefaultChildContext();
ctx.cvContext.scopeCtx.scopeObj = this.queryContext();
return ctx;
},
getDefaultProps: function () {
return { wrapperElemName: 'span', rowRenderer: null, queryContext: null, wrapperElemProps: {} };
},
queryContext: function (nextProps) {
return (nextProps && nextProps.queryContext) || this.props.queryContext || this.firstInScope(catavolt_sdk_1.QueryContext);
},
render: function () {
var _this = this;
var queryContext = this.queryContext();
if (queryContext && !queryContext.isDestroyed) {
if (this.props.renderer) {
return this.props.renderer(this.getChildContext().cvContext);
}
else if (this.props.rowRenderer) {
var entityRecs = catavolt_sdk_1.ArrayUtil.copy(queryContext.scroller.buffer);
var newChildren_1 = [];
entityRecs.forEach(function (entityRec) {
var row = _this.props.rowRenderer(_this.getChildContext().cvContext, entityRec);
if (row) {
var newElement = React.cloneElement(row, { key: entityRec.objectId });
newChildren_1.push(newElement);
}
});
return React.createElement(this.props.wrapperElemName, this.props.wrapperElemProps, newChildren_1);
}
else {
return null;
}
}
else {
return null;
}
},
});