import * as React from 'react'; import { Provider as AlertProvider, Alert, withAlert, AlertPosition, AlertTransition, ProviderOptions, InjectedAlertProp } from 'react-alert'; class AppWithoutAlert extends React.Component<{ alert: InjectedAlertProp }> { render() { return ( ); } } const App = withAlert(AppWithoutAlert); class AppAlert extends React.Component { render() { return ( {alert => ( )} ); } } class AlertTemplate extends React.Component { render() { // the style contains only the margin given as offset // options contains all alert given options // message is the alert message... // close is a function that closes the alert const { style, options, message, close } = this.props; return (
{options.type === 'info' && '!'} {options.type === 'success' && ':)'} {options.type === 'error' && ':('} {message}
); } } const options: ProviderOptions = { position: 'bottom center' as AlertPosition, timeout: 5000, offset: '30px', transition: 'scale' as AlertTransition }; class Root extends React.Component { render() { return ( ); } } class RootAlert extends React.Component { render() { return ( ); } }