import * as classNames from "classnames"; import { observer } from "mobx-react"; import * as React from "react"; import { Message, MessageProps, TransitionGroup } from "semantic-ui-react"; import { AppState, injectState, UiMessage, UiStore } from "@client/state/"; import "@client/styles/MessagesView"; @observer class MessageView extends React.Component<{ uiStore: UiStore; message: UiMessage; className?: string; }> { render() { const { id, ...messageProps } = this.props.message; const className = classNames(messageProps.className, this.props.className); return ( ); } private dismiss: MessageProps["onDismiss"] = (event, data) => { const { uiStore, message } = this.props; if (message.onDismiss) { message.onDismiss(event, data); } uiStore.removeMessage(message); }; } class MessagesView extends React.Component<{ appState: AppState }> { render() { const { uiStore } = this.props.appState; const messages = uiStore.messages.map(message => ( )); messages.reverse(); return ( {messages} ); } } export default injectState(observer(MessagesView));