UNPKG

apeman-react-mixins

Version:
117 lines (89 loc) 7.16 kB
/** * Mixin to handle toast. * @mixin ApToastMixin */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var TOAST_TOASTER_KEY = "_apToastToaster"; /** @lends ApToastMixin */ var ApToastMixin = { // -------------------- // Custom // -------------------- $apToastMixed: true, /** * Get current toast messages. * @returns {object} - Messages object. */ getToaster: function getToaster() { var s = this; var toaster = s[TOAST_TOASTER_KEY] || s.context[TOAST_TOASTER_KEY]; if (!toaster) { var msg = "Toaster no initialized. You need to call `.registerToaster()` on this component or one of it's parents"; throw new Error(msg); } return toaster; }, /** * Set toast message. * @param {string} message - Message to set * @param {string} [level="default"] - Level of message. */ toast: function toast(message, level) { var s = this; var toaster = s.getToaster(); level = level || 'default'; toaster.emit('toast', { level: level, message: message }); }, /** * Set info toast message */ infoToast: function infoToast(message) { var s = this; s.toast(message, 'info'); }, /** * Set warn toast message */ warnToast: function warnToast(message) { var s = this; s.toast(message, 'warn'); }, /** * Set error toast message */ errorToast: function errorToast(message) { var s = this; s.toast(message, 'error'); }, /** * Decorate toast context. */ registerToaster: function registerToaster(toaster) { var s = this; s[TOAST_TOASTER_KEY] = toaster; }, // -------------------- // Specs // -------------------- contextTypes: _defineProperty({}, TOAST_TOASTER_KEY, _react.PropTypes.object), childContextTypes: _defineProperty({}, TOAST_TOASTER_KEY, _react.PropTypes.object), getChildContext: function getChildContext() { var s = this; return _defineProperty({}, TOAST_TOASTER_KEY, s.getToaster()); } // -------------------- // Lifecycle // -------------------- }; exports.default = Object.freeze(ApToastMixin); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwX3RvYXN0X21peGluLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUtBOzs7Ozs7QUFFQTs7Ozs7Ozs7QUFFQSxJQUFNLG9CQUFvQixpQkFBMUI7OztBQUdBLElBQU0sZUFBZTs7Ozs7QUFLbkIsaUJBQWUsSUFMSTs7Ozs7O0FBV25CLFlBWG1CLHdCQVdMO0FBQ1osUUFBTSxJQUFJLElBQVY7QUFDQSxRQUFJLFVBQVUsRUFBRyxpQkFBSCxLQUEwQixFQUFFLE9BQUYsQ0FBVyxpQkFBWCxDQUF4QztBQUNBLFFBQUksQ0FBQyxPQUFMLEVBQWM7QUFDWixVQUFJLE1BQU0sd0dBQVY7QUFDQSxZQUFNLElBQUksS0FBSixDQUFVLEdBQVYsQ0FBTjtBQUNEO0FBQ0QsV0FBTyxPQUFQO0FBQ0QsR0FuQmtCOzs7Ozs7OztBQTBCbkIsT0ExQm1CLGlCQTBCWixPQTFCWSxFQTBCSCxLQTFCRyxFQTBCSTtBQUNyQixRQUFNLElBQUksSUFBVjtBQUNBLFFBQUksVUFBVSxFQUFFLFVBQUYsRUFBZDtBQUNBLFlBQVEsU0FBUyxTQUFqQjtBQUNBLFlBQVEsSUFBUixDQUFhLE9BQWIsRUFBc0I7QUFDcEIsYUFBTyxLQURhO0FBRXBCLGVBQVM7QUFGVyxLQUF0QjtBQUlELEdBbENrQjs7Ozs7O0FBdUNuQixXQXZDbUIscUJBdUNSLE9BdkNRLEVBdUNDO0FBQ2xCLFFBQU0sSUFBSSxJQUFWO0FBQ0EsTUFBRSxLQUFGLENBQVEsT0FBUixFQUFpQixNQUFqQjtBQUNELEdBMUNrQjs7Ozs7O0FBK0NuQixXQS9DbUIscUJBK0NSLE9BL0NRLEVBK0NDO0FBQ2xCLFFBQU0sSUFBSSxJQUFWO0FBQ0EsTUFBRSxLQUFGLENBQVEsT0FBUixFQUFpQixNQUFqQjtBQUNELEdBbERrQjs7Ozs7O0FBdURuQixZQXZEbUIsc0JBdURQLE9BdkRPLEVBdURFO0FBQ25CLFFBQU0sSUFBSSxJQUFWO0FBQ0EsTUFBRSxLQUFGLENBQVEsT0FBUixFQUFpQixPQUFqQjtBQUNELEdBMURrQjs7Ozs7O0FBK0RuQixpQkEvRG1CLDJCQStERixPQS9ERSxFQStETztBQUN4QixRQUFNLElBQUksSUFBVjtBQUNBLE1BQUcsaUJBQUgsSUFBeUIsT0FBekI7QUFDRCxHQWxFa0I7Ozs7Ozs7QUF3RW5CLG9DQUNHLGlCQURILEVBQ3VCLGlCQUFNLE1BRDdCLENBeEVtQjs7QUE0RW5CLHlDQUNHLGlCQURILEVBQ3VCLGlCQUFNLE1BRDdCLENBNUVtQjs7QUFnRm5CLGlCQWhGbUIsNkJBZ0ZBO0FBQ2pCLFFBQU0sSUFBSSxJQUFWO0FBQ0EsK0JBQ0csaUJBREgsRUFDdUIsRUFBRSxVQUFGLEVBRHZCO0FBR0Q7Ozs7OztBQXJGa0IsQ0FBckI7O2tCQTZGZSxPQUFPLE1BQVAsQ0FBYyxZQUFkLEMiLCJmaWxlIjoiYXBfdG9hc3RfbWl4aW4uanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL29rdW5pc2hpbmlzaGkvUHJvamVjdHMvYXBlbWFuLXByb2plY3RzL2FwZW1hbi1yZWFjdC1taXhpbnMvbGliIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNaXhpbiB0byBoYW5kbGUgdG9hc3QuXG4gKiBAbWl4aW4gQXBUb2FzdE1peGluXG4gKi9cblxuJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBSZWFjdCwge1Byb3BUeXBlcyBhcyB0eXBlc30gZnJvbSAncmVhY3QnXG5cbmNvbnN0IFRPQVNUX1RPQVNURVJfS0VZID0gXCJfYXBUb2FzdFRvYXN0ZXJcIjtcblxuLyoqIEBsZW5kcyBBcFRvYXN0TWl4aW4gKi9cbmNvbnN0IEFwVG9hc3RNaXhpbiA9IHtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBDdXN0b21cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJGFwVG9hc3RNaXhlZDogdHJ1ZSxcblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgdG9hc3QgbWVzc2FnZXMuXG4gICAqIEByZXR1cm5zIHtvYmplY3R9IC0gTWVzc2FnZXMgb2JqZWN0LlxuICAgKi9cbiAgZ2V0VG9hc3RlciAoKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBsZXQgdG9hc3RlciA9IHNbIFRPQVNUX1RPQVNURVJfS0VZIF0gfHwgcy5jb250ZXh0WyBUT0FTVF9UT0FTVEVSX0tFWSBdXG4gICAgaWYgKCF0b2FzdGVyKSB7XG4gICAgICBsZXQgbXNnID0gXCJUb2FzdGVyIG5vIGluaXRpYWxpemVkLiBZb3UgbmVlZCB0byBjYWxsIGAucmVnaXN0ZXJUb2FzdGVyKClgIG9uIHRoaXMgY29tcG9uZW50IG9yIG9uZSBvZiBpdCdzIHBhcmVudHNcIlxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZylcbiAgICB9XG4gICAgcmV0dXJuIHRvYXN0ZXJcbiAgfSxcblxuICAvKipcbiAgICogU2V0IHRvYXN0IG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIC0gTWVzc2FnZSB0byBzZXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZXZlbD1cImRlZmF1bHRcIl0gLSBMZXZlbCBvZiBtZXNzYWdlLlxuICAgKi9cbiAgdG9hc3QgKG1lc3NhZ2UsIGxldmVsKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBsZXQgdG9hc3RlciA9IHMuZ2V0VG9hc3RlcigpXG4gICAgbGV2ZWwgPSBsZXZlbCB8fCAnZGVmYXVsdCdcbiAgICB0b2FzdGVyLmVtaXQoJ3RvYXN0Jywge1xuICAgICAgbGV2ZWw6IGxldmVsLFxuICAgICAgbWVzc2FnZTogbWVzc2FnZVxuICAgIH0pXG4gIH0sXG5cbiAgLyoqXG4gICAqIFNldCBpbmZvIHRvYXN0IG1lc3NhZ2VcbiAgICovXG4gIGluZm9Ub2FzdCAobWVzc2FnZSkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgcy50b2FzdChtZXNzYWdlLCAnaW5mbycpXG4gIH0sXG5cbiAgLyoqXG4gICAqIFNldCB3YXJuIHRvYXN0IG1lc3NhZ2VcbiAgICovXG4gIHdhcm5Ub2FzdCAobWVzc2FnZSkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgcy50b2FzdChtZXNzYWdlLCAnd2FybicpXG4gIH0sXG5cbiAgLyoqXG4gICAqIFNldCBlcnJvciB0b2FzdCBtZXNzYWdlXG4gICAqL1xuICBlcnJvclRvYXN0IChtZXNzYWdlKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBzLnRvYXN0KG1lc3NhZ2UsICdlcnJvcicpXG4gIH0sXG5cbiAgLyoqXG4gICAqIERlY29yYXRlIHRvYXN0IGNvbnRleHQuXG4gICAqL1xuICByZWdpc3RlclRvYXN0ZXIgKHRvYXN0ZXIpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIHNbIFRPQVNUX1RPQVNURVJfS0VZIF0gPSB0b2FzdGVyXG4gIH0sXG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU3BlY3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBjb250ZXh0VHlwZXM6IHtcbiAgICBbVE9BU1RfVE9BU1RFUl9LRVldOiB0eXBlcy5vYmplY3RcbiAgfSxcblxuICBjaGlsZENvbnRleHRUeXBlczoge1xuICAgIFtUT0FTVF9UT0FTVEVSX0tFWV06IHR5cGVzLm9iamVjdFxuICB9LFxuXG4gIGdldENoaWxkQ29udGV4dCAoKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICByZXR1cm4ge1xuICAgICAgW1RPQVNUX1RPQVNURVJfS0VZXTogcy5nZXRUb2FzdGVyKClcbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBMaWZlY3ljbGVcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxufVxuXG5leHBvcnQgZGVmYXVsdCBPYmplY3QuZnJlZXplKEFwVG9hc3RNaXhpbilcbiJdfQ==