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
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 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,
 | |
|   updateTimeline
 | |
| }                          from '../../actions/timelines';
 | |
| 
 | |
| const PublicTimeline = React.createClass({
 | |
| 
 | |
|   propTypes: {
 | |
|     dispatch: React.PropTypes.func.isRequired
 | |
|   },
 | |
| 
 | |
|   mixins: [PureRenderMixin],
 | |
| 
 | |
|   componentWillMount () {
 | |
|     const { dispatch } = this.props;
 | |
| 
 | |
|     dispatch(refreshTimeline('public'));
 | |
| 
 | |
|     if (typeof App !== 'undefined') {
 | |
|       this.subscription = App.cable.subscriptions.create('PublicChannel', {
 | |
| 
 | |
|         received (data) {
 | |
|           dispatch(updateTimeline('public', JSON.parse(data.message)));
 | |
|         }
 | |
| 
 | |
|       });
 | |
|     }
 | |
|   },
 | |
| 
 | |
|   componentWillUnmount () {
 | |
|     if (typeof this.subscription !== 'undefined') {
 | |
|       this.subscription.unsubscribe();
 | |
|     }
 | |
|   },
 | |
| 
 | |
|   render () {
 | |
|     return (
 | |
|       <Column icon='globe' heading='Public'>
 | |
|         <StatusListContainer type='public' />
 | |
|       </Column>
 | |
|     );
 | |
|   },
 | |
| 
 | |
| });
 | |
| 
 | |
| export default connect()(PublicTimeline);
 |