/* `` ========================= This container connects ``s to the Redux store. */ // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* Imports: -------- */ // Package imports // import { connect } from 'react-redux'; // Mastodon imports // import { makeGetNotification } from '../../../mastodon/selectors'; // Our imports // import Notification from '.'; import { deleteNotification } from '../../../mastodon/actions/notifications'; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* State mapping: -------------- The `mapStateToProps()` function maps various state properties to the props of our component. We wrap this in `makeMapStateToProps()` so that we only have to call `makeGetNotification()` once instead of every time. */ const makeMapStateToProps = () => { const getNotification = makeGetNotification(); const mapStateToProps = (state, props) => ({ notification: getNotification(state, props.notification, props.accountId), settings: state.get('local_settings'), }); return mapStateToProps; }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* Dispatch mapping: ----------------- The `mapDispatchToProps()` function maps dispatches to our store to the various props of our component. We only need to provide a dispatch for deleting notifications. */ const mapDispatchToProps = dispatch => ({ onDeleteNotification (id) { dispatch(deleteNotification(id)); }, }); export default connect(makeMapStateToProps, mapDispatchToProps)(Notification);