UNPKG

este-library-oldschool

Version:

Library for github.com/steida/este.git

112 lines (101 loc) 2.89 kB
// Generated by github.com/steida/coffee2closure 900.1.18 /** @fileoverview este.labs.app.ReactPage. */ goog.provide('este.labs.app.ReactPage'); goog.require('este.labs.app.Page'); goog.require('este.react'); goog.require('goog.asserts'); goog.require('goog.Promise'); goog.require('goog.object'); /** @constructor @implements {este.labs.app.Page} */ este.labs.app.ReactPage = function() {} /** Should be overridden in child constructor. @type {function(Object): React.Component} @protected */ este.labs.app.ReactPage.prototype.reactClass = este.react.create(/** @lends {React.Component.prototype} */({ render: function() { return this.pre(goog.DEBUG && "Hello from este.labs.app.Controller. This class should be subclassed.\n\nExample:\n\nclass app.home.Controller extends este.labs.app.Controller\n\n ###*\n @constructor\n @extends {este.labs.app.Controller}\n ###\n constructor: ->\n # Example handlers for React, will be used for setProps.\n @handlers =\n onAutoCompleteUpdate: @onAutoCompleteUpdate\n\n ###*\n Custom React class.\n @override\n ###\n reactClass: app.home.react.Home\n\n ###*\n Custom data load. Remember to return promise.\n @override\n ###\n load: (params) ->"); } })); /** Can be overridden in child constructor. @type {Object} @protected */ este.labs.app.ReactPage.prototype.pageProps = null; /** @type {React.Component} @protected */ este.labs.app.ReactPage.prototype.react = null; /** @type {Element} @protected */ este.labs.app.ReactPage.prototype.reactElement = null; /** @override */ este.labs.app.ReactPage.prototype.load = function(params) { return goog.Promise.resolve(params); }; /** @override */ este.labs.app.ReactPage.prototype.show = function(container, data) { var key, props, ref, value; if (data == null) { data = {}; } goog.asserts.assertObject(data); if (this.react) { this.react.setProps(data, (function(_this) { return function() { return _this.onShow(); }; })(this)); return; } props = {}; goog.object.extend(props, data); if (this.pageProps) { ref = this.pageProps; for (key in ref) { value = ref[key]; props[key] = goog.isFunction(value) ? value.bind(this) : value; } } this.react = this.reactClass(props); este.react.render(this.react, container, (function(_this) { return function() { _this.reactElement = _this.react.getDOMNode(); return _this.onShow(); }; })(this)); }; /** @protected */ este.labs.app.ReactPage.prototype.onShow = function() {}; /** @override */ este.labs.app.ReactPage.prototype.hide = function() { return this.onHide(); }; /** @protected */ este.labs.app.ReactPage.prototype.onHide = function() {}; /** @override */ este.labs.app.ReactPage.prototype.getElement = function() { return this.reactElement; };