Files
talk/plugins/talk-plugin-featured-comments/client/containers/ModIndicatorSubscription.js
T
2018-03-13 19:58:32 +01:00

65 lines
1.6 KiB
JavaScript

import React from 'react';
import { gql } from 'react-apollo';
import { subscriptionFields } from 'coral-admin/src/routes/Moderation/graphql';
import { compose, withSubscribeToMore } from 'plugin-api/beta/client/hocs';
class ModIndicatorSubscription extends React.Component {
subscriptions = null;
componentWillMount() {
const configs = [
{
document: COMMENT_FEATURED_SUBSCRIPTION,
updateQuery: (
prev,
{ subscriptionData: { data: { commentFeatured: { comment } } } }
) => {
return this.props.handleCommentChange(prev, comment);
},
},
{
document: COMMENT_UNFEATURED_SUBSCRIPTION,
updateQuery: (
prev,
{ subscriptionData: { data: { commentUnfeatured: { comment } } } }
) => {
return this.props.handleCommentChange(prev, comment);
},
},
];
this.subscriptions = configs.map(config =>
this.props.subscribeToMore(config)
);
}
componentWillUnmount() {
this.subscriptions.forEach(unsubscribe => unsubscribe());
}
render() {
return null;
}
}
const COMMENT_FEATURED_SUBSCRIPTION = gql`
subscription TalkFeaturedComments_Indicator_CommentFeatured {
commentFeatured {
comment {
${subscriptionFields}
}
}
}
`;
const COMMENT_UNFEATURED_SUBSCRIPTION = gql`
subscription TalkFeaturedComments_Indicator_CommentUnfeatured {
commentUnfeatured {
comment {
${subscriptionFields}
}
}
}
`;
export default compose(withSubscribeToMore)(ModIndicatorSubscription);