[Glitch] Fix frontend crash when deleting announcements
Port 15c02a7160 to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
			
			
This commit is contained in:
		
							parent
							
								
									6adb571c21
								
							
						
					
					
						commit
						5dbcafb998
					
				
					 1 changed files with 10 additions and 2 deletions
				
			
		|  | @ -378,6 +378,14 @@ class Announcements extends ImmutablePureComponent { | ||||||
|     index: 0, |     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 () { |   componentDidMount () { | ||||||
|     this._markAnnouncementAsRead(); |     this._markAnnouncementAsRead(); | ||||||
|   } |   } | ||||||
|  | @ -389,7 +397,7 @@ class Announcements extends ImmutablePureComponent { | ||||||
|   _markAnnouncementAsRead () { |   _markAnnouncementAsRead () { | ||||||
|     const { dismissAnnouncement, announcements } = this.props; |     const { dismissAnnouncement, announcements } = this.props; | ||||||
|     const { index } = this.state; |     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')); |     if (!announcement.get('read')) dismissAnnouncement(announcement.get('id')); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | @ -407,7 +415,7 @@ class Announcements extends ImmutablePureComponent { | ||||||
| 
 | 
 | ||||||
|   render () { |   render () { | ||||||
|     const { announcements, intl } = this.props; |     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()) { |     if (announcements.isEmpty()) { | ||||||
|       return null; |       return null; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue