Cleaning up format of broadcast real-time messages, removing

redis-backed "mentions" timeline as redundant (given notifications)
This commit is contained in:
Eugen Rochko 2017-02-02 00:03:31 +01:00
parent 1da0ce5c7c
commit d9ca46b464
17 changed files with 26 additions and 110 deletions

View file

@ -23,7 +23,6 @@ import GettingStarted from '../features/getting_started';
import PublicTimeline from '../features/public_timeline';
import AccountTimeline from '../features/account_timeline';
import HomeTimeline from '../features/home_timeline';
import MentionsTimeline from '../features/mentions_timeline';
import Compose from '../features/compose';
import Followers from '../features/followers';
import Following from '../features/following';
@ -68,15 +67,15 @@ const Mastodon = React.createClass({
this.subscription = App.cable.subscriptions.create('TimelineChannel', {
received (data) {
switch(data.type) {
switch(data.event) {
case 'update':
store.dispatch(updateTimeline(data.timeline, JSON.parse(data.message)));
store.dispatch(updateTimeline('home', JSON.parse(data.payload)));
break;
case 'delete':
store.dispatch(deleteFromTimelines(data.id));
store.dispatch(deleteFromTimelines(data.payload));
break;
case 'notification':
store.dispatch(updateNotifications(JSON.parse(data.message), getMessagesForLocale(locale), locale));
store.dispatch(updateNotifications(JSON.parse(data.payload), getMessagesForLocale(locale), locale));
break;
}
}
@ -108,7 +107,6 @@ const Mastodon = React.createClass({
<Route path='getting-started' component={GettingStarted} />
<Route path='timelines/home' component={HomeTimeline} />
<Route path='timelines/mentions' component={MentionsTimeline} />
<Route path='timelines/public' component={PublicTimeline} />
<Route path='timelines/tag/:id' component={HashtagTimeline} />

View file

@ -26,11 +26,13 @@ const HashtagTimeline = React.createClass({
}, {
received (data) {
switch(data.type) {
switch(data.event) {
case 'update':
return dispatch(updateTimeline('tag', JSON.parse(data.message)));
dispatch(updateTimeline('tag', JSON.parse(data.payload)));
break;
case 'delete':
return dispatch(deleteFromTimelines(data.id));
dispatch(deleteFromTimelines(data.payload));
break;
}
}

View file

@ -1,36 +0,0 @@
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';
import { defineMessages, injectIntl } from 'react-intl';
const messages = defineMessages({
title: { id: 'column.mentions', defaultMessage: 'Mentions' }
});
const MentionsTimeline = React.createClass({
propTypes: {
dispatch: React.PropTypes.func.isRequired
},
mixins: [PureRenderMixin],
componentWillMount () {
this.props.dispatch(refreshTimeline('mentions'));
},
render () {
const { intl } = this.props;
return (
<Column icon='at' heading={intl.formatMessage(messages.title)}>
<StatusListContainer {...this.props} type='mentions' />
</Column>
);
},
});
export default connect()(injectIntl(MentionsTimeline));

View file

@ -32,11 +32,13 @@ const PublicTimeline = React.createClass({
this.subscription = App.cable.subscriptions.create('PublicChannel', {
received (data) {
switch(data.type) {
switch(data.event) {
case 'update':
return dispatch(updateTimeline('public', JSON.parse(data.message)));
dispatch(updateTimeline('public', JSON.parse(data.payload)));
break;
case 'delete':
return dispatch(deleteFromTimelines(data.id));
dispatch(deleteFromTimelines(data.payload));
break;
}
}