Fix React warning about legacy lifecycle calls and sensitive status resetting (#10872)
This commit is contained in:
		
							parent
							
								
									32fc0777b1
								
							
						
					
					
						commit
						3333250ede
					
				
					 2 changed files with 12 additions and 6 deletions
				
			
		|  | @ -18,7 +18,6 @@ import classNames from 'classnames'; | |||
| import Icon from 'mastodon/components/icon'; | ||||
| import PollContainer from 'mastodon/containers/poll_container'; | ||||
| import { displayMedia } from '../initial_state'; | ||||
| import { is } from 'immutable'; | ||||
| 
 | ||||
| // We use the component (and not the container) since we do not want
 | ||||
| // to use the progress bar to show download progress
 | ||||
|  | @ -101,6 +100,7 @@ class Status extends ImmutablePureComponent { | |||
| 
 | ||||
|   state = { | ||||
|     showMedia: defaultMediaVisibility(this.props.status), | ||||
|     statusId: undefined, | ||||
|   }; | ||||
| 
 | ||||
|   // Track height changes we know about to compensate scrolling
 | ||||
|  | @ -116,9 +116,14 @@ class Status extends ImmutablePureComponent { | |||
|     } | ||||
|   } | ||||
| 
 | ||||
|   componentWillReceiveProps (nextProps) { | ||||
|     if (!is(nextProps.status, this.props.status) && nextProps.status) { | ||||
|       this.setState({ showMedia: defaultMediaVisibility(nextProps.status) }); | ||||
|   static getDerivedStateFromProps(nextProps, prevState) { | ||||
|     if (nextProps.status && nextProps.status.get('id') !== prevState.statusId) { | ||||
|       return { | ||||
|         showMedia: defaultMediaVisibility(nextProps.status), | ||||
|         statusId: nextProps.status.get('id'), | ||||
|       }; | ||||
|     } else { | ||||
|       return null; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -132,6 +132,7 @@ class Status extends ImmutablePureComponent { | |||
|   state = { | ||||
|     fullscreen: false, | ||||
|     showMedia: defaultMediaVisibility(this.props.status), | ||||
|     loadedStatusId: undefined, | ||||
|   }; | ||||
| 
 | ||||
|   componentWillMount () { | ||||
|  | @ -148,8 +149,8 @@ class Status extends ImmutablePureComponent { | |||
|       this.props.dispatch(fetchStatus(nextProps.params.statusId)); | ||||
|     } | ||||
| 
 | ||||
|     if (!Immutable.is(nextProps.status, this.props.status) && nextProps.status) { | ||||
|       this.setState({ showMedia: defaultMediaVisibility(nextProps.status) }); | ||||
|     if (nextProps.status && nextProps.status.get('id') !== this.state.loadedStatusId) { | ||||
|       this.setState({ showMedia: defaultMediaVisibility(nextProps.status), loadedStatusId: nextProps.status.get('id') }); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue