modo-mobile
Version:
A mobile UI toolkit, based on React
100 lines (95 loc) • 3.31 kB
JavaScript
import _extends from 'babel-runtime/helpers/extends';
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import ToastOptions from './toast';
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(ToastOptions, _extends(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);
}
export 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;
}
}
};