34 lines
		
	
	
		
			921 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			921 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { injectIntl } from 'react-intl';
 | 
						|
 | 
						|
import { connect } from 'react-redux';
 | 
						|
 | 
						|
import { NotificationStack } from 'react-notification';
 | 
						|
 | 
						|
import { dismissAlert } from '../../../actions/alerts';
 | 
						|
import { getAlerts } from '../../../selectors';
 | 
						|
 | 
						|
const formatIfNeeded = (intl, message, values) => {
 | 
						|
  if (typeof message === 'object') {
 | 
						|
    return intl.formatMessage(message, values);
 | 
						|
  }
 | 
						|
 | 
						|
  return message;
 | 
						|
};
 | 
						|
 | 
						|
const mapStateToProps = (state, { intl }) => ({
 | 
						|
  notifications: getAlerts(state).map(alert => ({
 | 
						|
    ...alert,
 | 
						|
    action: formatIfNeeded(intl, alert.action, alert.values),
 | 
						|
    title: formatIfNeeded(intl, alert.title, alert.values),
 | 
						|
    message: formatIfNeeded(intl, alert.message, alert.values),
 | 
						|
  })),
 | 
						|
});
 | 
						|
 | 
						|
const mapDispatchToProps = (dispatch) => ({
 | 
						|
  onDismiss (alert) {
 | 
						|
    dispatch(dismissAlert(alert));
 | 
						|
  },
 | 
						|
});
 | 
						|
 | 
						|
export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(NotificationStack));
 |