UNPKG

catreact

Version:

Catavolt Core React Components

67 lines (66 loc) 2.04 kB
"use strict"; /** * Created by rburson on 5/28/16. */ Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var catreact_core_1 = require("./catreact-core"); /* *************************************************** * Render a Message *************************************************** */ exports.CvMessagePane = React.createClass({ mixins: [catreact_core_1.CvBaseMixin], componentDidMount: function () { this.eventRegistry().subscribe(this._messageListener, catreact_core_1.CvEventType.MESSAGE); }, componentWillUnmount: function () { this.eventRegistry().unsubscribe(this._messageListener); }, message: function () { return this.state.message; }, getChildContext: function () { var ctx = this.getDefaultChildContext(); ctx.cvContext.scopeCtx.scopeObj = this.message(); return ctx; }, getDefaultProps: function () { return { renderer: null, messageRenderer: null }; }, getInitialState: function () { return { message: null }; }, render: function () { var message = this.message(); if (message) { if (this.props.renderer) { return this.props.renderer(this.getChildContext().cvContext); } else if (this.props.messageRenderer) { return this.props.messageRenderer(this.getChildContext().cvContext, message, this._getCallbackObj()); } else if (React.Children.count(this.props.children) > 0) { return this.props.children; } else { return null; } } else { return null; } }, _messageListener: function (event) { this.setState({ message: event.eventObj }); }, _getCallbackObj: function () { var _this = this; return { clear: function () { _this.setState({ message: null }); } }; } });