UNPKG

catreact

Version:

Catavolt Core React Components

76 lines (75 loc) 2.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var catreact_core_1 = require("./catreact-core"); var catavolt_sdk_1 = require("catavolt-sdk"); /** * Top-level container for a Catavolt Application */ exports.CatavoltPane = React.createClass({ propTypes: { catavolt: React.PropTypes.instanceOf(catavolt_sdk_1.AppContext), enableResourceCaching: React.PropTypes.bool, eventRegistry: React.PropTypes.instanceOf(catreact_core_1.CvEventRegistry), /** * renderer signature: (cvContext:CvContext, callbackObj?:any)=>{} */ renderer: React.PropTypes.func }, mixins: [catreact_core_1.CvBaseMixin], componentWillMount: function () { this.refresh(); }, componentWillReceiveProps: function (nextProps) { this.refresh(nextProps); }, getChildContext: function () { return { cvContext: { catavolt: this.catavolt(), eventRegistry: this.eventRegistry(), scopeCtx: { scopeObj: this.catavolt(), parentScopeCtx: null } } }; }, getDefaultProps: function () { return { catavolt: catavolt_sdk_1.AppContext.singleton, eventRegistry: new catreact_core_1.CvEventRegistry(), enableResourceCaching: false }; }, getInitialState: function () { return {}; }, render: function () { if (this.props.renderer) { return this.props.renderer(this.getChildContext().cvContext); } else if (React.Children.count(this.props.children) > 0) { return this.props.children; } else { return null; } }, refresh: function (nextProps) { if (nextProps) { this._cachingEnabled(nextProps.enableResourceCaching); } else { this._cachingEnabled(this.props.enableResourceCaching); } }, _cachingEnabled: function (enabled) { if (enabled) { this.eventRegistry().enableCache(); } else { this.eventRegistry().disableCache(); } } });