diff --git a/client/coral-admin/src/containers/BanUserDialog.js b/client/coral-admin/src/containers/BanUserDialog.js index 67e8daf67..0b2ccc0a7 100644 --- a/client/coral-admin/src/containers/BanUserDialog.js +++ b/client/coral-admin/src/containers/BanUserDialog.js @@ -1,9 +1,10 @@ import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import {connect} from 'react-redux'; import {bindActionCreators} from 'redux'; import BanUserDialog from '../components/BanUserDialog'; import {hideBanUserDialog} from '../actions/banUserDialog'; -import {withSetUserStatus, withSetCommentStatus} from 'coral-framework/graphql/mutations'; +import {withSetUserBanStatus, withSetCommentStatus} from 'coral-framework/graphql/mutations'; import {compose} from 'react-apollo'; import t from 'coral-framework/services/i18n'; import {getErrorMessages} from 'coral-framework/utils'; @@ -12,9 +13,9 @@ import {notify} from 'coral-framework/actions/notification'; class BanUserDialogContainer extends Component { banUser = async () => { - const {userId, commentId, commentStatus, setUserStatus, setCommentStatus, hideBanUserDialog, notify} = this.props; + const {userId, commentId, commentStatus, setUserBanStatus, setCommentStatus, hideBanUserDialog, notify} = this.props; try { - await setUserStatus({userId, status: 'BANNED'}); + await setUserBanStatus({id: userId, status: true}); hideBanUserDialog(); if (commentId && commentStatus && commentStatus !== 'REJECTED') { await setCommentStatus({commentId, status: 'REJECTED'}); @@ -46,6 +47,14 @@ class BanUserDialogContainer extends Component { } } +BanUserDialogContainer.propTypes = { + setUserBanStatus: PropTypes.func.isRequired, + hideBanUserDialog: PropTypes.func, + open: PropTypes.bool, + username: PropTypes.string, + commentStatus: PropTypes.string, +}; + const mapStateToProps = ({banUserDialog: {open, userId, username, commentId, commentStatus}}) => ({ open, userId, @@ -62,7 +71,7 @@ const mapDispatchToProps = (dispatch) => ({ }); export default compose( - withSetUserStatus, + withSetUserBanStatus, withSetCommentStatus, connect( mapStateToProps, diff --git a/client/coral-admin/src/graphql/index.js b/client/coral-admin/src/graphql/index.js index d7656d9a5..4f0831efb 100644 --- a/client/coral-admin/src/graphql/index.js +++ b/client/coral-admin/src/graphql/index.js @@ -13,15 +13,15 @@ function mapLeaves(o, mapper) { export default { mutations: { - SetUserStatus: ({variables: {status, userId}}) => ({ + SetUserBanStatus: ({variables: {status, id}}) => ({ updateQueries: { TalkAdmin_Community: (prev) => { - if (status !== 'APPROVED') { + if (!status) { return prev; } const updated = update(prev, { users: { - nodes: {$apply: (nodes) => nodes.filter((node) => node.id !== userId)}, + nodes: {$apply: (nodes) => nodes.filter((node) => node.id !== id)}, }, }); return updated; diff --git a/client/coral-admin/src/routes/Community/components/People.js b/client/coral-admin/src/routes/Community/components/People.js index b92bd679a..4057eaf67 100644 --- a/client/coral-admin/src/routes/Community/components/People.js +++ b/client/coral-admin/src/routes/Community/components/People.js @@ -18,7 +18,7 @@ const People = (props) => { totalPages, page, setRole, - setCommenterStatus, + setUserBanStatus, viewUserDetail, } = props; @@ -46,7 +46,7 @@ const People = (props) => { users={users} setRole={setRole} viewUserDetail={viewUserDetail} - setCommenterStatus={setCommenterStatus} + setUserBanStatus={setUserBanStatus} onHeaderClickHandler={onHeaderClickHandler} pageCount={totalPages} onPageChange={onPageChange} @@ -67,7 +67,7 @@ People.propTypes = { onSearchChange: PropTypes.func, totalPages: PropTypes.number, onPageChange: PropTypes.func, - setCommenterStatus: PropTypes.func.isRequired, + setUserBanStatus: PropTypes.func.isRequired, setRole: PropTypes.func.isRequired, viewUserDetail: PropTypes.func.isRequired, }; diff --git a/client/coral-admin/src/routes/Community/components/Table.js b/client/coral-admin/src/routes/Community/components/Table.js index 5bfd80023..413859c40 100644 --- a/client/coral-admin/src/routes/Community/components/Table.js +++ b/client/coral-admin/src/routes/Community/components/Table.js @@ -28,7 +28,7 @@ const getStatus = (status) => { return status.banned.status ? 'BANNED' : 'ACTIVE'; }; -const Table = ({users, setRole, onHeaderClickHandler, setCommenterStatus, viewUserDetail, pageCount, page, onPageChange}) => ( +const Table = ({users, setRole, onHeaderClickHandler, setUserBanStatus, viewUserDetail, pageCount, page, onPageChange}) => (
@@ -59,7 +59,7 @@ const Table = ({users, setRole, onHeaderClickHandler, setCommenterStatus, viewUs containerClassName="talk-admin-community-people-dd-status" value={getStatus(row.status)} placeholder={t('community.status')} - onChange={(status) => setCommenterStatus(row.id, status)}> + onChange={(status) => setUserBanStatus({id: row.id, status: status !== 'BANNED'})}>