UNPKG

apeman-react-toast

Version:
150 lines (121 loc) 10.4 kB
/** * Toast component * @class ApToast */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _asobj = require('asobj'); var _ap_toast_item = require('./ap_toast_item'); var _ap_toast_item2 = _interopRequireDefault(_ap_toast_item); var _reactAddonsCssTransitionGroup = require('react-addons-css-transition-group'); var _reactAddonsCssTransitionGroup2 = _interopRequireDefault(_reactAddonsCssTransitionGroup); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** @lends ApToast */ var ApToast = _react2.default.createClass({ displayName: 'ApToast', // -------------------- // Specs // -------------------- propTypes: { /** Messages to show */ messages: _react.PropTypes.arrayOf(_react.PropTypes.string), /** Icon to show */ icon: _react.PropTypes.string, /** Dismiss an item */ dismiss: _react.PropTypes.func, /** Level of toast */ level: _react.PropTypes.string }, mixins: [], statics: {}, getInitialState: function getInitialState() { return {}; }, getDefaultProps: function getDefaultProps() { return { transitionTimeout: 100, level: 'default', messages: [], icon: null, dismiss: null }; }, render: function render() { var s = this; var props = s.props; var messages = props.messages; var icon = props.icon; var dismiss = props.dismiss; var className = props.className; var style = props.style; var level = props.level; var transitionTimeout = props.transitionTimeout; var children = messages.filter(Boolean).map(function (message) { return _react2.default.createElement(_ap_toast_item2.default, { key: message, text: message, icon: icon, onTap: function onTap() { return dismiss(message, level); } }); }); if (children.length === 0) { return null; } return _react2.default.createElement( 'div', { className: (0, _classnames2.default)('ap-toast', className, {}), style: Object.assign({}, style) }, _react2.default.createElement( _reactAddonsCssTransitionGroup2.default, { component: 'div', className: 'ap-toast-inner', transitionName: 'ap-toast-transition', transitionEnterTimeout: transitionTimeout, transitionLeaveTimeout: transitionTimeout }, children ) ); }, // -------------------- // Lifecycle // -------------------- componentWillMount: function componentWillMount() { var s = this; }, componentDidMount: function componentDidMount() { var s = this; var props = s.props; }, componentWillReceiveProps: function componentWillReceiveProps(nextProps) { var s = this; }, componentWillUnmount: function componentWillUnmount() { var s = this; }, shouldComponentUpdate: function shouldComponentUpdate(nextProps, nextState) { var s = this; var props = s.props; var state = s.state; var messageChanged = !(0, _asobj.deepEqual)(props.messages, nextProps.messages); if (messageChanged) { return true; } return !(0, _asobj.shallowEqual)(props, nextProps) || (0, _asobj.shallowEqual)(state, nextState); } // ------------------ // Custom // ------------------ // ------------------ // Private // ------------------ }); exports.default = ApToast; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwX3RvYXN0LmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7QUFLQTs7Ozs7O0FBRUE7Ozs7QUFDQTs7OztBQUNBOztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBO0FBQ0EsSUFBTSxVQUFVLGdCQUFNLFdBQU4sQ0FBa0I7QUFBQTs7O0FBRWhDO0FBQ0E7QUFDQTs7QUFFQSxhQUFXO0FBQ1Q7QUFDQSxjQUFVLGlCQUFNLE9BQU4sQ0FBYyxpQkFBTSxNQUFwQixDQUZEO0FBR1Q7QUFDQSxVQUFNLGlCQUFNLE1BSkg7QUFLVDtBQUNBLGFBQVMsaUJBQU0sSUFOTjtBQU9UO0FBQ0EsV0FBTyxpQkFBTTtBQVJKLEdBTnFCOztBQWlCaEMsVUFBUSxFQWpCd0I7O0FBbUJoQyxXQUFTLEVBbkJ1Qjs7QUFxQmhDLGlCQXJCZ0MsNkJBcUJiO0FBQ2pCLFdBQU8sRUFBUDtBQUNELEdBdkIrQjtBQXlCaEMsaUJBekJnQyw2QkF5QmI7QUFDakIsV0FBTztBQUNMLHlCQUFtQixHQURkO0FBRUwsYUFBTyxTQUZGO0FBR0wsZ0JBQVUsRUFITDtBQUlMLFlBQU0sSUFKRDtBQUtMLGVBQVM7QUFMSixLQUFQO0FBT0QsR0FqQytCO0FBbUNoQyxRQW5DZ0Msb0JBbUN0QjtBQUNSLFFBQU0sSUFBSSxJQUFWO0FBRFEsUUFFRixLQUZFLEdBRVEsQ0FGUixDQUVGLEtBRkU7QUFBQSxRQUtOLFFBTE0sR0FRSixLQVJJLENBS04sUUFMTTtBQUFBLFFBS0ksSUFMSixHQVFKLEtBUkksQ0FLSSxJQUxKO0FBQUEsUUFLVSxPQUxWLEdBUUosS0FSSSxDQUtVLE9BTFY7QUFBQSxRQU1OLFNBTk0sR0FRSixLQVJJLENBTU4sU0FOTTtBQUFBLFFBTUssS0FOTCxHQVFKLEtBUkksQ0FNSyxLQU5MO0FBQUEsUUFNWSxLQU5aLEdBUUosS0FSSSxDQU1ZLEtBTlo7QUFBQSxRQU9OLGlCQVBNLEdBUUosS0FSSSxDQU9OLGlCQVBNOzs7QUFVUixRQUFJLFdBQVcsU0FDWixNQURZLENBQ0wsT0FESyxFQUVaLEdBRlksQ0FFUixVQUFDLE9BQUQ7QUFBQSxhQUNILHlEQUFhLEtBQU0sT0FBbkI7QUFDYSxjQUFPLE9BRHBCO0FBRWEsY0FBTyxJQUZwQjtBQUdhLGVBQVE7QUFBQSxpQkFBTSxRQUFRLE9BQVIsRUFBaUIsS0FBakIsQ0FBTjtBQUFBO0FBSHJCLFFBREc7QUFBQSxLQUZRLENBQWY7QUFVQSxRQUFJLFNBQVMsTUFBVCxLQUFvQixDQUF4QixFQUEyQjtBQUN6QixhQUFPLElBQVA7QUFDRDtBQUNELFdBQ0U7QUFBQTtBQUFBLFFBQUssV0FBWSwwQkFBVyxVQUFYLEVBQXVCLFNBQXZCLEVBQWtDLEVBQWxDLENBQWpCO0FBQ0ssZUFBUSxPQUFPLE1BQVAsQ0FBYyxFQUFkLEVBQWtCLEtBQWxCLENBRGI7QUFFRTtBQUFBO0FBQUEsVUFBeUIsV0FBVSxLQUFuQztBQUN5QixxQkFBVSxnQkFEbkM7QUFFeUIsMEJBQWUscUJBRnhDO0FBR3lCLGtDQUF5QixpQkFIbEQ7QUFJeUIsa0NBQXlCO0FBSmxEO0FBTUk7QUFOSjtBQUZGLEtBREY7QUFhRCxHQXZFK0I7OztBQXlFaEM7QUFDQTtBQUNBOztBQUVBLG9CQTdFZ0MsZ0NBNkVWO0FBQ3BCLFFBQU0sSUFBSSxJQUFWO0FBQ0QsR0EvRStCO0FBaUZoQyxtQkFqRmdDLCtCQWlGWDtBQUNuQixRQUFNLElBQUksSUFBVjtBQURtQixRQUViLEtBRmEsR0FFSCxDQUZHLENBRWIsS0FGYTtBQUdwQixHQXBGK0I7QUFzRmhDLDJCQXRGZ0MscUNBc0ZMLFNBdEZLLEVBc0ZNO0FBQ3BDLFFBQU0sSUFBSSxJQUFWO0FBQ0QsR0F4RitCO0FBMEZoQyxzQkExRmdDLGtDQTBGUjtBQUN0QixRQUFNLElBQUksSUFBVjtBQUNELEdBNUYrQjtBQThGaEMsdUJBOUZnQyxpQ0E4RlQsU0E5RlMsRUE4RkUsU0E5RkYsRUE4RmE7QUFDM0MsUUFBTSxJQUFJLElBQVY7QUFEMkMsUUFFckMsS0FGcUMsR0FFcEIsQ0FGb0IsQ0FFckMsS0FGcUM7QUFBQSxRQUU5QixLQUY4QixHQUVwQixDQUZvQixDQUU5QixLQUY4Qjs7QUFHM0MsUUFBSSxpQkFBaUIsQ0FBQyxzQkFBVSxNQUFNLFFBQWhCLEVBQTBCLFVBQVUsUUFBcEMsQ0FBdEI7QUFDQSxRQUFJLGNBQUosRUFBb0I7QUFDbEIsYUFBTyxJQUFQO0FBQ0Q7QUFDRCxXQUFPLENBQUMseUJBQWEsS0FBYixFQUFvQixTQUFwQixDQUFELElBQW1DLHlCQUFhLEtBQWIsRUFBb0IsU0FBcEIsQ0FBMUM7QUFDRDs7QUFFRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQTlHZ0MsQ0FBbEIsQ0FBaEI7O2tCQWlIZSxPIiwiZmlsZSI6ImFwX3RvYXN0LmpzeCIsInNvdXJjZVJvb3QiOiIvVXNlcnMvb2t1bmlzaGluaXNoaS9Qcm9qZWN0cy9hcGVtYW4tcHJvamVjdHMvYXBlbWFuLXJlYWN0LXRvYXN0L2NpLy4uL2xpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVG9hc3QgY29tcG9uZW50XG4gKiBAY2xhc3MgQXBUb2FzdFxuICovXG5cbid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgUmVhY3QsIHtQcm9wVHlwZXMgYXMgdHlwZXN9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcbmltcG9ydCB7c2hhbGxvd0VxdWFsLCBkZWVwRXF1YWx9IGZyb20gJ2Fzb2JqJ1xuaW1wb3J0IEFwVG9hc3RJdGVtIGZyb20gJy4vYXBfdG9hc3RfaXRlbSdcbmltcG9ydCBSZWFjdENTU1RyYW5zaXRpb25Hcm91cCBmcm9tICdyZWFjdC1hZGRvbnMtY3NzLXRyYW5zaXRpb24tZ3JvdXAnXG5cbi8qKiBAbGVuZHMgQXBUb2FzdCAqL1xuY29uc3QgQXBUb2FzdCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBTcGVjc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHByb3BUeXBlczoge1xuICAgIC8qKiBNZXNzYWdlcyB0byBzaG93ICovXG4gICAgbWVzc2FnZXM6IHR5cGVzLmFycmF5T2YodHlwZXMuc3RyaW5nKSxcbiAgICAvKiogSWNvbiB0byBzaG93ICovXG4gICAgaWNvbjogdHlwZXMuc3RyaW5nLFxuICAgIC8qKiBEaXNtaXNzIGFuIGl0ZW0gKi9cbiAgICBkaXNtaXNzOiB0eXBlcy5mdW5jLFxuICAgIC8qKiBMZXZlbCBvZiB0b2FzdCAqL1xuICAgIGxldmVsOiB0eXBlcy5zdHJpbmdcbiAgfSxcblxuICBtaXhpbnM6IFtdLFxuXG4gIHN0YXRpY3M6IHt9LFxuXG4gIGdldEluaXRpYWxTdGF0ZSAoKSB7XG4gICAgcmV0dXJuIHt9XG4gIH0sXG5cbiAgZ2V0RGVmYXVsdFByb3BzICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHJhbnNpdGlvblRpbWVvdXQ6IDEwMCxcbiAgICAgIGxldmVsOiAnZGVmYXVsdCcsXG4gICAgICBtZXNzYWdlczogW10sXG4gICAgICBpY29uOiBudWxsLFxuICAgICAgZGlzbWlzczogbnVsbFxuICAgIH1cbiAgfSxcblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgcHJvcHMgfSA9IHNcblxuICAgIGxldCB7XG4gICAgICBtZXNzYWdlcywgaWNvbiwgZGlzbWlzcyxcbiAgICAgIGNsYXNzTmFtZSwgc3R5bGUsIGxldmVsLFxuICAgICAgdHJhbnNpdGlvblRpbWVvdXRcbiAgICB9ID0gcHJvcHNcblxuICAgIGxldCBjaGlsZHJlbiA9IG1lc3NhZ2VzXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAubWFwKChtZXNzYWdlKSA9PiAoXG4gICAgICAgIDxBcFRvYXN0SXRlbSBrZXk9eyBtZXNzYWdlIH1cbiAgICAgICAgICAgICAgICAgICAgIHRleHQ9eyBtZXNzYWdlIH1cbiAgICAgICAgICAgICAgICAgICAgIGljb249eyBpY29uIH1cbiAgICAgICAgICAgICAgICAgICAgIG9uVGFwPXsgKCkgPT4gZGlzbWlzcyhtZXNzYWdlLCBsZXZlbCkgfVxuICAgICAgICA+XG4gICAgICAgIDwvQXBUb2FzdEl0ZW0+XG4gICAgICApKVxuICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoJ2FwLXRvYXN0JywgY2xhc3NOYW1lLCB7fSkgfVxuICAgICAgICAgICBzdHlsZT17IE9iamVjdC5hc3NpZ24oe30sIHN0eWxlKSB9PlxuICAgICAgICA8UmVhY3RDU1NUcmFuc2l0aW9uR3JvdXAgY29tcG9uZW50PSdkaXYnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J2FwLXRvYXN0LWlubmVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbk5hbWU9J2FwLXRvYXN0LXRyYW5zaXRpb24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRW50ZXJUaW1lb3V0PXsgdHJhbnNpdGlvblRpbWVvdXQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbkxlYXZlVGltZW91dD17IHRyYW5zaXRpb25UaW1lb3V0IH1cbiAgICAgICAgPlxuICAgICAgICAgIHsgY2hpbGRyZW4gfVxuICAgICAgICA8L1JlYWN0Q1NTVHJhbnNpdGlvbkdyb3VwPlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9LFxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIExpZmVjeWNsZVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGNvbXBvbmVudFdpbGxNb3VudCAoKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgfSxcblxuICBjb21wb25lbnREaWRNb3VudCAoKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBsZXQgeyBwcm9wcyB9ID0gc1xuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgKG5leHRQcm9wcykge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gIH0sXG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQgKCkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gIH0sXG5cbiAgc2hvdWxkQ29tcG9uZW50VXBkYXRlIChuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgcHJvcHMsIHN0YXRlIH0gPSBzXG4gICAgbGV0IG1lc3NhZ2VDaGFuZ2VkID0gIWRlZXBFcXVhbChwcm9wcy5tZXNzYWdlcywgbmV4dFByb3BzLm1lc3NhZ2VzKVxuICAgIGlmIChtZXNzYWdlQ2hhbmdlZCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuICFzaGFsbG93RXF1YWwocHJvcHMsIG5leHRQcm9wcykgfHwgc2hhbGxvd0VxdWFsKHN0YXRlLCBuZXh0U3RhdGUpXG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gQ3VzdG9tXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBQcml2YXRlXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLVxufSlcblxuZXhwb3J0IGRlZmF1bHQgQXBUb2FzdFxuIl19