import CSSTransition from 'react-transition-group/CSSTransition' import TransitionGroup from 'react-transition-group/TransitionGroup' import React from 'react' import classnames from 'classnames' import { dismissNotification, Notification } from '../actions/NotifyActions' export interface NotificationsProps { notifications: Record dismiss: typeof dismissNotification max: number } const transitionTimeout = { enter: 200, exit: 100, } export interface NotificationProps { notification: Notification dismiss: typeof dismissNotification timeout: number } const Notification = React.memo( function Notification(props: NotificationProps) { const { notification } = props return (
{notification.message}
) }, ) export default class Notifications extends React.PureComponent { static defaultProps = { max: 20, } render () { const { dismiss, notifications, max } = this.props return (
{Object.keys(notifications).slice(-max).reverse().map(id => ( ))}
) } }