mirror of
https://github.com/wassname/talk.git
synced 2026-06-30 01:24:02 +08:00
65 lines
1.6 KiB
JavaScript
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);
|