glitchier-soc/app/javascript/glitch/components/notification/container.js

49 lines
1.2 KiB
JavaScript
Raw Normal View History

2017-07-14 21:13:02 +03:00
/*
`<NotificationContainer>`
=========================
This container connects `<Notification>`s to the Redux store.
*/
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/*
Imports:
--------
*/
// Package imports //
2016-11-20 20:39:18 +02:00
import { connect } from 'react-redux';
// Our imports //
import Notification from '.';
2016-11-20 20:39:18 +02:00
2017-07-14 21:13:02 +03:00
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2017-10-05 22:55:02 +03:00
const mapStateToProps = (state, props) => {
// replace account id with object
let leNotif = props.notification.set('account', state.getIn(['accounts', props.notification.get('account')]));
2017-07-14 21:13:02 +03:00
2017-10-05 22:55:02 +03:00
// populate markedForDelete from state - is mysteriously lost somewhere
for (let n of state.getIn(['notifications', 'items'])) {
if (n.get('id') === props.notification.get('id')) {
leNotif = leNotif.set('markedForDelete', n.get('markedForDelete'));
break;
}
}
2017-07-14 21:13:02 +03:00
2017-10-05 22:55:02 +03:00
return ({
notification: leNotif,
2017-06-29 08:00:54 +03:00
settings: state.get('local_settings'),
notifCleaning: state.getIn(['notifications', 'cleaningMode']),
2016-11-20 20:39:18 +02:00
});
};
2017-07-14 21:13:02 +03:00
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2017-10-05 22:55:02 +03:00
export default connect(mapStateToProps)(Notification);