diff --git a/client/coral-admin/src/components/UserDetail.js b/client/coral-admin/src/components/UserDetail.js
index 31ad999dc..02de6f47b 100644
--- a/client/coral-admin/src/components/UserDetail.js
+++ b/client/coral-admin/src/components/UserDetail.js
@@ -28,26 +28,6 @@ import UserInfoTooltip from './UserInfoTooltip';
import t from 'coral-framework/services/i18n';
class UserDetail extends React.Component {
- rejectThenReload = async info => {
- await this.props.rejectComment(info);
- this.props.data.refetch();
- };
-
- acceptThenReload = async info => {
- await this.props.acceptComment(info);
- this.props.data.refetch();
- };
-
- bulkAcceptThenReload = async () => {
- await this.props.bulkAccept();
- this.props.data.refetch();
- };
-
- bulkRejectThenReload = async () => {
- await this.props.bulkReject();
- this.props.data.refetch();
- };
-
changeTab = tab => {
this.props.changeTab(tab);
};
@@ -110,8 +90,14 @@ class UserDetail extends React.Component {
unbanUser,
unsuspendUser,
modal,
+ acceptComment,
+ rejectComment,
+ bulkAccept,
+ bulkReject,
} = this.props;
+ console.log(rejectedComments, totalComments);
+
// if totalComments is 0, you're dividing by zero
let rejectedPercent = rejectedComments / totalComments * 100;
@@ -304,12 +290,12 @@ class UserDetail extends React.Component {
loadMore={loadMore}
toggleSelect={toggleSelect}
viewUserDetail={viewUserDetail}
- acceptComment={this.acceptThenReload}
- rejectComment={this.rejectThenReload}
+ acceptComment={acceptComment}
+ rejectComment={rejectComment}
selectedCommentIds={selectedCommentIds}
toggleSelectAll={toggleSelectAll}
- bulkAcceptThenReload={this.bulkAcceptThenReload}
- bulkRejectThenReload={this.bulkRejectThenReload}
+ bulkAcceptThenReload={bulkAccept}
+ bulkRejectThenReload={bulkReject}
/>
{
return {
variables: { author_id: userId, statuses },
- fetchPolicy: 'network-only',
};
},
skip: ownProps => !ownProps.userId,
diff --git a/client/coral-framework/graphql/mutations.js b/client/coral-framework/graphql/mutations.js
index 1b3b4c6fc..bd31be630 100644
--- a/client/coral-framework/graphql/mutations.js
+++ b/client/coral-framework/graphql/mutations.js
@@ -1,5 +1,6 @@
import { gql } from 'react-apollo';
import withMutation from '../hocs/withMutation';
+import update from 'immutability-helper';
function convertItemType(item_type) {
switch (item_type) {
@@ -167,9 +168,39 @@ export const withSetCommentStatus = withMutation(
errors: null,
},
},
+ updateQueries: {
+ CoralAdmin_UserDetail: prev => {
+ const increment = {
+ rejectedComments: {
+ $apply: count =>
+ count < prev.totalComments ? count + 1 : count,
+ },
+ };
+
+ const decrement = {
+ rejectedComments: {
+ $apply: count => (count > 0 ? count - 1 : 0),
+ },
+ };
+
+ // If rejected then increment rejectedComments by one
+ if (status === 'REJECTED') {
+ const updated = update(prev, increment);
+ return updated;
+ }
+
+ // If approved then decrement rejectedComments by one
+ if (status === 'ACCEPTED') {
+ const updated = update(prev, decrement);
+ return updated;
+ }
+
+ return prev;
+ },
+ },
update: proxy => {
const fragment = gql`
- fragment Talk_SetCommentStatus on Comment {
+ fragment Talk_SetCommentStatus_Comment on Comment {
status
status_history {
type
@@ -182,9 +213,11 @@ export const withSetCommentStatus = withMutation(
const data = proxy.readFragment({ fragment, id: fragmentId });
data.status = status;
+
data.status_history = data.status_history
? data.status_history
: [];
+
data.status_history.push({
__typename: 'CommentStatusHistory',
type: status,