i-react-utils
Version:
1 lines • 4.92 kB
JavaScript
Object.defineProperty(exports,'__esModule',{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _react=require('react');var _react2=_interopRequireDefault(_react);var _iJsUtils=require('i-js-utils');function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function')}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')}return call&&(typeof call==='object'||typeof call==='function')?call:self}function _inherits(subClass,superClass){if(typeof superClass!=='function'&&superClass!==null){throw new TypeError('Super expression must either be null or a function, not '+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var GlobalMessage=function(_React$Component){_inherits(GlobalMessage,_React$Component);function GlobalMessage(props){_classCallCheck(this,GlobalMessage);var _this=_possibleConstructorReturn(this,(GlobalMessage.__proto__||Object.getPrototypeOf(GlobalMessage)).call(this));_this.props=props;_this.messages=[];_this.state={messages:_this.messages};_this.message=_this.message.bind(_this);_this.clear=_this.clear.bind(_this);_this._inUse=false;return _this}_createClass(GlobalMessage,[{key:'componentWillMount',value:function componentWillMount(){this._inUse=true;this.setState({messages:this.messages})}},{key:'componentWillUnmount',value:function componentWillUnmount(){this._inUse=false}},{key:'message',value:function message(type,msg){var messenger=this;var msgObj={type:type,msg:msg,close:function close(){messenger.close(msgObj)},timeout:function timeout(_timeout){if(_timeout>0){setTimeout(function(){messenger.close(msgObj)},_timeout)}}};var newArray=this.messages.slice(0);newArray.push(msgObj);if(this._inUse){this.setState({messages:newArray})}else{(0,_iJsUtils.devOnly)(function(){console.log('GlobalMessage: New message on an unmounted GlobalMessage Component:','type='+type,'message='+msg)})}this.messages=newArray;return msgObj}},{key:'close',value:function close(message){var index=this.messages.indexOf(message);if(index>-1){var newArray=this.messages.slice(0);newArray.splice(index,1);if(this._inUse){this.setState({messages:newArray})}this.messages=newArray}}},{key:'clear',value:function clear(){var array=[];if(this._inUse){this.setState({messages:array})}this.messages=array}},{key:'getChildContext',value:function getChildContext(){var _messenger=this;return{messenger:{success:function success(msg){return _messenger.message('success',msg)},info:function info(msg){return _messenger.message('info',msg)},warning:function warning(msg){return _messenger.message('warning',msg)},danger:function danger(msg){return _messenger.message('danger',msg)},warn:function warn(msg){return _messenger.message('warning',msg)},error:function error(msg){return _messenger.message('danger',msg)},clear:function clear(){_messenger.clear()},close:function close(message){_messenger.close(message)}}}}},{key:'generateHtml',value:function generateHtml(_messages,_alertType){var key='globalMessage-typeContainer-'+_alertType;return _react2.default.createElement('div',{key:key,className:'alert-container custom-alert-'+_alertType},_react2.default.createElement('div',{className:'container'},_react2.default.createElement('span',{className:'ico'}),_messages))}},{key:'render',value:function render(){var messages=[],rdyToRenderMsgs=[];var id=0;this.state.messages.forEach(function(m){var key='globalMessage-'+id;messages[m.type]=messages[m.type]?messages[m.type]:[];messages[m.type].push(_react2.default.createElement('div',{key:key,className:'alert alert-'+m.type,role:'alert',dangerouslySetInnerHTML:{__html:m.msg}}));id++});for(var key in messages){rdyToRenderMsgs.push(this.generateHtml(messages[key],key))}return _react2.default.createElement('div',this.props,_react2.default.createElement('div',{className:'globalMessages'},rdyToRenderMsgs),this.props.children)}}]);return GlobalMessage}(_react2.default.Component);GlobalMessage.childContextTypes={messenger:_react.PropTypes.object};exports.default=GlobalMessage;module.exports=exports.default;
;