forked from fedi/mastodon
f0f791bb76
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);
|