More concise and functional subscribing

This commit is contained in:
Chi Vinh Le
2017-06-28 00:13:47 +07:00
parent 1b40521f88
commit b134d4099c
2 changed files with 24 additions and 34 deletions
@@ -26,41 +26,32 @@ class EmbedContainer extends React.Component {
subscribeToUpdates(props = this.props) {
if (props.auth.loggedIn) {
let sub = props.data.subscribeToMore({
const newSubscriptions = [{
document: USER_BANNED_SUBSCRIPTION,
variables: {
user_id: props.auth.user.id,
},
updateQuery: () => {
addNotification('info', t('your_account_has_been_banned'));
},
});
this.subscriptions.push(sub);
sub = props.data.subscribeToMore({
},
{
document: USER_SUSPENDED_SUBSCRIPTION,
variables: {
user_id: props.auth.user.id,
},
updateQuery: () => {
addNotification('info', t('your_account_has_been_suspended'));
},
});
this.subscriptions.push(sub);
sub = props.data.subscribeToMore({
},
{
document: USERNAME_REJECTED_SUBSCRIPTION,
variables: {
user_id: props.auth.user.id,
},
updateQuery: () => {
addNotification('info', t('your_username_has_been_rejected'));
},
});
}];
this.subscriptions.push(sub);
this.subscriptions = newSubscriptions.map((s) => props.data.subscribeToMore({
document: s.document,
variables: {
user_id: props.auth.user.id,
},
updateQuery: s.updateQuery,
}));
}
}
@@ -30,11 +30,8 @@ class StreamContainer extends React.Component {
subscriptions = [];
subscribeToUpdates() {
const sub1 = this.props.data.subscribeToMore({
const newSubscriptions = [{
document: COMMENTS_EDITED_SUBSCRIPTION,
variables: {
assetId: this.props.root.asset.id,
},
updateQuery: (prev, {subscriptionData: {data: {commentEdited}}}) => {
// Ignore mutations from me.
@@ -52,13 +49,9 @@ class StreamContainer extends React.Component {
return removeCommentFromEmbedQuery(prev, commentEdited.id);
}
},
});
const sub2 = this.props.data.subscribeToMore({
},
{
document: COMMENTS_ADDED_SUBSCRIPTION,
variables: {
assetId: this.props.root.asset.id,
},
updateQuery: (prev, {subscriptionData: {data: {commentAdded}}}) => {
// Ignore mutations from me.
@@ -81,9 +74,15 @@ class StreamContainer extends React.Component {
return insertCommentIntoEmbedQuery(prev, commentAdded);
}
});
}];
this.subscriptions.push(sub1, sub2);
this.subscriptions = newSubscriptions.map((s) => this.props.data.subscribeToMore({
document: s.document,
variables: {
assetId: this.props.root.asset.id,
},
updateQuery: s.updateQuery,
}));
}
unsubscribe() {