import React, {Component} from 'react'; import './Notifications.scss'; import dispatcher from "../dispatcher"; const _ = require('lodash'); const classNames = require('classnames'); class Notifications extends Component { state = { notifications: [], closedNotifications: [], }; componentDidMount() { dispatcher.register("notifications", notification => { const notifications = this.state.notifications; notifications.push(notification); this.setState({notifications}); setTimeout(() => { const notifications = this.state.notifications; notification.open = true; this.setState({notifications}); }, 100); const hideHandle = setTimeout(() => { const notifications = _.without(this.state.notifications, notification); const closedNotifications = this.state.closedNotifications.concat([notification]); notification.closed = true; this.setState({notifications, closedNotifications}); }, 5000); const removeHandle = setTimeout(() => { const closedNotifications = _.without(this.state.closedNotifications, notification); this.setState({closedNotifications}); }, 6000); notification.onClick = () => { clearTimeout(hideHandle); clearTimeout(removeHandle); const notifications = _.without(this.state.notifications, notification); this.setState({notifications}); }; }); } render() { return (