/* @flow */ import React from 'react'; import { H2 } from 'components/Heading'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; import * as NOTIFICATION from 'actions/constants/notification'; import * as NotificationActions from 'actions/NotificationActions'; import type { Action, State, Dispatch } from 'flowtype'; import Loader from 'components/Loader'; type Props = { notifications: $ElementType, close: (notif?: any) => Action } type NProps = { key?: number; className: string; cancelable?: boolean; title: string; message?: string; actions?: Array; close?: typeof NotificationActions.close, loading?: boolean } export const Notification = (props: NProps): React$Element => { const className = `notification ${props.className}`; const close: Function = typeof props.close === 'function' ? props.close : () => {}; // TODO: add default close action const actionButtons = props.actions ? props.actions.map((a, i) => ( )) : null; return (
{ props.cancelable ? (
); }; export const NotificationGroup = (props: Props) => { const { notifications, close } = props; return notifications.map((n, i) => ( )); }; export default connect( (state: State) => ({ notifications: state.notifications, }), (dispatch: Dispatch) => ({ close: bindActionCreators(NotificationActions.close, dispatch), }), )(NotificationGroup);