element-react-codish
Version:
Element UI for React
42 lines (32 loc) • 871 B
JSX
import React from 'react';
import ReactDOM from 'react-dom';
import Toast from './Toast';
export default function Message(props = {}, type) {
const div = document.createElement('div');
document.body.appendChild(div);
if (typeof props === 'string' || React.isValidElement(props)) {
props = {
message: props
};
}
if (type) {
props.type = type;
}
const component = React.createElement(Toast, Object.assign(props, {
willUnmount: () => {
ReactDOM.unmountComponentAtNode(div);
document.body.removeChild(div);
if (props.onClose instanceof Function) {
props.onClose();
}
}
}));
ReactDOM.render(component, div);
}
/* eslint-disable */
['success', 'warning', 'info', 'error'].forEach(type => {
Message[type] = (options = {}) => {
return Message(options, type);
};
});
/* eslint-enable */