Fix frontend crash when deleting announcements (#13312)
Refactor and fix #13283, which only worked in some cases.
This commit is contained in:
		
							parent
							
								
									beb80adb51
								
							
						
					
					
						commit
						858d0dd168
					
				
					 1 changed files with 10 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -378,6 +378,14 @@ class Announcements extends ImmutablePureComponent {
 | 
			
		|||
    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();
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			@ -389,7 +397,7 @@ class Announcements extends ImmutablePureComponent {
 | 
			
		|||
  _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'));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -407,7 +415,7 @@ class Announcements extends ImmutablePureComponent {
 | 
			
		|||
 | 
			
		||||
  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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue