Don't preload timelines as props, load them when timeline component is mounted
This prevents the bug where if you go "back" to the UI after navigating to another page it loads with the old set of statuses
This commit is contained in:
		
							parent
							
								
									0895ff414e
								
							
						
					
					
						commit
						f0f791bb76
					
				| @ -41,12 +41,6 @@ const Mastodon = React.createClass({ | ||||
|     store.dispatch(setAccessToken(this.props.token)); | ||||
|     store.dispatch(setAccountSelf(JSON.parse(this.props.account))); | ||||
| 
 | ||||
|     for (var timelineType in this.props.timelines) { | ||||
|       if (this.props.timelines.hasOwnProperty(timelineType)) { | ||||
|         store.dispatch(refreshTimelineSuccess(timelineType, JSON.parse(this.props.timelines[timelineType]))); | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     if (typeof App !== 'undefined') { | ||||
|       this.subscription = App.cable.subscriptions.create('TimelineChannel', { | ||||
| 
 | ||||
|  | ||||
| @ -1,11 +1,21 @@ | ||||
| import { connect }         from 'react-redux'; | ||||
| import PureRenderMixin     from 'react-addons-pure-render-mixin'; | ||||
| import StatusListContainer from '../ui/containers/status_list_container'; | ||||
| import Column              from '../ui/components/column'; | ||||
| import { refreshTimeline } from '../../actions/timelines'; | ||||
| 
 | ||||
| const HomeTimeline = React.createClass({ | ||||
| 
 | ||||
|   propTypes: { | ||||
|     dispatch: React.PropTypes.func.isRequired | ||||
|   }, | ||||
| 
 | ||||
|   mixins: [PureRenderMixin], | ||||
| 
 | ||||
|   componentWillMount () { | ||||
|     this.props.dispatch(refreshTimeline('home')); | ||||
|   }, | ||||
| 
 | ||||
|   render () { | ||||
|     return ( | ||||
|       <Column icon='home' heading='Home'> | ||||
| @ -16,4 +26,4 @@ const HomeTimeline = React.createClass({ | ||||
| 
 | ||||
| }); | ||||
| 
 | ||||
| export default HomeTimeline; | ||||
| export default connect()(HomeTimeline); | ||||
|  | ||||
| @ -1,11 +1,21 @@ | ||||
| import { connect }         from 'react-redux'; | ||||
| import PureRenderMixin     from 'react-addons-pure-render-mixin'; | ||||
| import StatusListContainer from '../ui/containers/status_list_container'; | ||||
| import Column              from '../ui/components/column'; | ||||
| import { refreshTimeline } from '../../actions/timelines'; | ||||
| 
 | ||||
| const MentionsTimeline = React.createClass({ | ||||
| 
 | ||||
|   propTypes: { | ||||
|     dispatch: React.PropTypes.func.isRequired | ||||
|   }, | ||||
| 
 | ||||
|   mixins: [PureRenderMixin], | ||||
| 
 | ||||
|   componentWillMount () { | ||||
|     this.props.dispatch(refreshTimeline('mentions')); | ||||
|   }, | ||||
| 
 | ||||
|   render () { | ||||
|     return ( | ||||
|       <Column icon='at' heading='Mentions'> | ||||
| @ -16,4 +26,4 @@ const MentionsTimeline = React.createClass({ | ||||
| 
 | ||||
| }); | ||||
| 
 | ||||
| export default MentionsTimeline; | ||||
| export default connect()(MentionsTimeline); | ||||
|  | ||||
| @ -9,6 +9,10 @@ import { | ||||
| 
 | ||||
| const PublicTimeline = React.createClass({ | ||||
| 
 | ||||
|   propTypes: { | ||||
|     dispatch: React.PropTypes.func.isRequired | ||||
|   }, | ||||
| 
 | ||||
|   mixins: [PureRenderMixin], | ||||
| 
 | ||||
|   componentWillMount () { | ||||
|  | ||||
| @ -2,13 +2,7 @@ module HomeHelper | ||||
|   def default_props | ||||
|     { | ||||
|       token: @token, | ||||
| 
 | ||||
|       account: render(file: 'api/v1/accounts/show', locals: { account: current_user.account }, formats: :json), | ||||
| 
 | ||||
|       timelines: { | ||||
|         home: render(file: 'api/v1/statuses/index', locals: { statuses: @home }, formats: :json), | ||||
|         mentions: render(file: 'api/v1/statuses/index', locals: { statuses: @mentions }, formats: :json) | ||||
|       } | ||||
|       account: render(file: 'api/v1/accounts/show', locals: { account: current_user.account }, formats: :json) | ||||
|     } | ||||
|   end | ||||
| end | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user