index: 0,
};
+ static getDerivedStateFromProps(props, state) {
+ if (props.announcements.size > 0 && state.index >= props.announcements.size) {
+ return { index: props.announcements.size - 1 };
+ } else {
+ return null;
+ }
+ }
+
componentDidMount () {
this._markAnnouncementAsRead();
}
_markAnnouncementAsRead () {
const { dismissAnnouncement, announcements } = this.props;
const { index } = this.state;
- const announcement = announcements.get(index) || announcements.get(index - 1);
+ const announcement = announcements.get(index);
if (!announcement.get('read')) dismissAnnouncement(announcement.get('id'));
}
render () {
const { announcements, intl } = this.props;
- const index = this.state.index < announcements.size ? this.state.index : announcements.size - 1;
+ const { index } = this.state;
if (announcements.isEmpty()) {
return null;