UNPKG

element-react-codish

Version:
42 lines (32 loc) 871 B
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 */