modo-mobile
Version:
A mobile UI toolkit, based on React
123 lines (106 loc) • 4.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _react = require('react');
var React = _interopRequireWildcard(_react);
var _reactDom = require('react-dom');
var ReactDOM = _interopRequireWildcard(_reactDom);
var _toast = require('./toast');
var _toast2 = _interopRequireDefault(_toast);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var toastComponent = void 0;
var div = void 0;
function Toast(_ref) {
var _ref$content = _ref.content,
content = _ref$content === undefined ? '' : _ref$content,
_ref$icon = _ref.icon,
icon = _ref$icon === undefined ? '' : _ref$icon,
_ref$duration = _ref.duration,
duration = _ref$duration === undefined ? 0 : _ref$duration,
_ref$position = _ref.position,
position = _ref$position === undefined ? 'center' : _ref$position,
_ref$hasMask = _ref.hasMask,
hasMask = _ref$hasMask === undefined ? false : _ref$hasMask;
var props = {
content: content,
duration: duration,
hasMask: hasMask,
icon: icon,
position: position
};
if (toastComponent) {
toastComponent.props = props;
} else {
div = document.createElement('div');
document.body.appendChild(div);
}
next(props);
}
function next(props) {
var component = React.createElement(_toast2['default'], (0, _extends3['default'])(props, {
ref: function ref(el) {
toastComponent = el;
},
willUnmount: function willUnmount() {
ReactDOM.unmountComponentAtNode(div);
document.body.removeChild(div);
div = null;
toastComponent = null;
}
}));
ReactDOM.render(component, div);
}
exports['default'] = {
info: function info(content) {
var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;
var hasMask = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
return Toast({
content: content,
duration: duration,
hasMask: hasMask
});
},
success: function success(content) {
var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;
var hasMask = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
return Toast({
content: content,
duration: duration,
hasMask: hasMask,
icon: 'check-circle'
});
},
fail: function fail(content) {
var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;
var hasMask = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
return Toast({
content: content,
duration: duration,
hasMask: hasMask,
icon: 'close-circle'
});
},
loading: function loading(content) {
var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
var hasMask = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
return Toast({
content: content,
duration: duration,
hasMask: hasMask,
icon: 'loading'
});
},
hide: function hide() {
if (div) {
ReactDOM.unmountComponentAtNode(div);
document.body.removeChild(div);
div = null;
toastComponent = null;
}
}
};
module.exports = exports['default'];