From 70276c3358289bccc1f78b56cdc6755326c5362c Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Tue, 20 Jun 2017 01:01:39 +0700 Subject: [PATCH] Fix subscription issues --- .../Moderation/containers/Moderation.js | 25 +++++++------------ graph/subscriptions.js | 6 ++--- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/client/coral-admin/src/routes/Moderation/containers/Moderation.js b/client/coral-admin/src/routes/Moderation/containers/Moderation.js index f9aa4c2c5..12a991454 100644 --- a/client/coral-admin/src/routes/Moderation/containers/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/containers/Moderation.js @@ -38,12 +38,10 @@ class ModerationContainer extends Component { get activeTab() { return this.props.route.path === ':id' ? 'premod' : this.props.route.path; } - subscribeToUpdates() { + subscribeToUpdates(variables = this.props.data.variables) { const sub1 = this.props.data.subscribeToMore({ document: COMMENT_ACCEPTED_SUBSCRIPTION, - variables: { - asset_id: this.props.data.variables.asset_id, - }, + variables, updateQuery: (prev, {subscriptionData: {data: {commentAccepted: comment}}}) => { const user = comment.status_history[comment.status_history.length - 1].assigned_by; const sort = this.props.moderation.sortOrder; @@ -60,9 +58,7 @@ class ModerationContainer extends Component { const sub2 = this.props.data.subscribeToMore({ document: COMMENT_REJECTED_SUBSCRIPTION, - variables: { - asset_id: this.props.data.variables.asset_id, - }, + variables, updateQuery: (prev, {subscriptionData: {data: {commentRejected: comment}}}) => { const user = comment.status_history[comment.status_history.length - 1].assigned_by; const sort = this.props.moderation.sortOrder; @@ -79,9 +75,7 @@ class ModerationContainer extends Component { const sub3 = this.props.data.subscribeToMore({ document: COMMENT_EDITED_SUBSCRIPTION, - variables: { - asset_id: this.props.data.variables.asset_id, - }, + variables, updateQuery: (prev, {subscriptionData: {data: {commentEdited: comment}}}) => { const sort = this.props.moderation.sortOrder; const notify = { @@ -95,9 +89,7 @@ class ModerationContainer extends Component { const sub4 = this.props.data.subscribeToMore({ document: COMMENT_FLAGGED_SUBSCRIPTION, - variables: { - asset_id: this.props.data.variables.asset_id, - }, + variables, updateQuery: (prev, {subscriptionData: {data: {commentFlagged: comment}}}) => { const user = comment.actions[comment.actions.length - 1].user; const sort = this.props.moderation.sortOrder; @@ -118,9 +110,9 @@ class ModerationContainer extends Component { this.subscriptions = []; } - resubscribe() { + resubscribe(variables) { this.unsubscribe(); - this.subscribeToUpdates(); + this.subscribeToUpdates(variables); } componentWillMount() { @@ -134,9 +126,10 @@ class ModerationContainer extends Component { } componentWillReceiveProps(nextProps) { + // Resubscribe when we change between assets. if(this.props.data.variables.asset_id !== nextProps.data.variables.asset_id) { - this.resubscribe(); + this.resubscribe(nextProps.data.variables); } } diff --git a/graph/subscriptions.js b/graph/subscriptions.js index 31b430523..2ba0c2c1f 100644 --- a/graph/subscriptions.js +++ b/graph/subscriptions.js @@ -50,7 +50,7 @@ const setupFunctions = plugins.get('server', 'setupFunctions').reduce((acc, {plu }), commentFlagged: (options, args) => ({ commentFlagged: { - filter: ({comment}, context) => { + filter: (comment, context) => { if (!context.user || !context.user.can(SUBSCRIBE_COMMENT_FLAGGED)) { return false; } @@ -60,7 +60,7 @@ const setupFunctions = plugins.get('server', 'setupFunctions').reduce((acc, {plu }), commentAccepted: (options, args) => ({ commentAccepted: { - filter: ({comment}, context) => { + filter: (comment, context) => { if (!context.user || !context.user.can(SUBSCRIBE_COMMENT_ACCEPTED)) { return false; } @@ -70,7 +70,7 @@ const setupFunctions = plugins.get('server', 'setupFunctions').reduce((acc, {plu }), commentRejected: (options, args) => ({ commentRejected: { - filter: ({comment}, context) => { + filter: (comment, context) => { if (!context.user || !context.user.can(SUBSCRIBE_COMMENT_REJECTED)) { return false; }