diff --git a/client/coral-admin/src/components/ui/Header.js b/client/coral-admin/src/components/ui/Header.js index 40a22b7c0..30c5fa7e6 100644 --- a/client/coral-admin/src/components/ui/Header.js +++ b/client/coral-admin/src/components/ui/Header.js @@ -12,101 +12,104 @@ const CoralHeader = ({ handleLogout, showShortcuts = () => {}, auth, - root, -}) => ( -
- -
- { - auth && auth.user && can(auth.user, 'ACCESS_ADMIN') ? - - - {t('configure.dashboard')} - - { - can(auth.user, 'MODERATE_COMMENTS') && ( - - {t('configure.moderate')} - {(root.premodCount || root.reportedCount) && } - - ) - } - - {t('configure.stories')} - + root +}) => { + return ( +
+ +
+ { + auth && auth.user && can(auth.user, 'ACCESS_ADMIN') ? + + + {t('configure.dashboard')} + + { + can(auth.user, 'MODERATE_COMMENTS') && ( + + {t('configure.moderate')} + {(root.premodCount !== 0 || root.reportedCount !== 0) && } + + ) + } + + {t('configure.stories')} + - - {t('configure.community')} - {root.flaggedUsernamesCount && } - + + {t('configure.community')} + {root.flaggedUsernamesCount !== 0 && } + - { - can(auth.user, 'UPDATE_CONFIG') && ( - - {t('configure.configure')} - - ) - } - - : - null - } -
- + { + can(auth.user, 'UPDATE_CONFIG') && ( + + {t('configure.configure')} + + ) + } + + : + null + } +
+ +
-
-
-); +
+ ); +}; CoralHeader.propTypes = { auth: PropTypes.object, showShortcuts: PropTypes.func, - handleLogout: PropTypes.func.isRequired + handleLogout: PropTypes.func.isRequired, + root: PropTypes.object.isRequired }; export default CoralHeader; diff --git a/client/coral-admin/src/components/ui/Layout.js b/client/coral-admin/src/components/ui/Layout.js index 2e0c69228..9ee9fda9f 100644 --- a/client/coral-admin/src/components/ui/Layout.js +++ b/client/coral-admin/src/components/ui/Layout.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import {Layout as LayoutMDL} from 'react-mdl'; -import Header from './Header'; +import Header from '../../containers/Header'; import Drawer from './Drawer'; import styles from './Layout.css'; @@ -10,14 +10,12 @@ const Layout = ({ handleLogout = () => {}, toggleShortcutModal = () => {}, restricted = false, - root, auth, }) => (
- {cloneElement(children, { - root: this.props.root, - data: this.props.data - })} + {children} ); } else if (loggedIn) { @@ -99,24 +89,9 @@ LayoutContainer.propTypes = { toggleShortcutModal: PropTypes.func, TALK_RECAPTCHA_PUBLIC: PropTypes.string, checkLogin: PropTypes.func, - fetchConfig: PropTypes.func, - root: PropTypes.object.isRequired, - data: PropTypes.object.isRequired, + fetchConfig: PropTypes.func }; -const withData = withQuery(gql` - query TalkAdmin_initialQuery { - ...${getDefinitionName(Header.fragments.root)} - ...${getDefinitionName(Community.fragments.root)} - } - ${Header.fragments.root} - ${Community.fragments.root} - `, { - options: { - fetchPolicy: 'network-only', - }, -}); - const mapStateToProps = (state) => ({ auth: state.auth, TALK_RECAPTCHA_PUBLIC: state.config.data.TALK_RECAPTCHA_PUBLIC, @@ -131,8 +106,5 @@ const mapDispatchToProps = (dispatch) => toggleShortcutModal, logout }, dispatch); - -export default compose( - connect(mapStateToProps, mapDispatchToProps), - withData -)(LayoutContainer); + +export default connect(mapStateToProps, mapDispatchToProps)(LayoutContainer); diff --git a/client/coral-admin/src/routes/Community/containers/Community.js b/client/coral-admin/src/routes/Community/containers/Community.js index 0356762d4..ecdac62dd 100644 --- a/client/coral-admin/src/routes/Community/containers/Community.js +++ b/client/coral-admin/src/routes/Community/containers/Community.js @@ -3,7 +3,7 @@ import {connect} from 'react-redux'; import {bindActionCreators} from 'redux'; import PropTypes from 'prop-types'; import {compose, gql} from 'react-apollo'; -import {withFragments} from 'plugin-api/beta/client/hocs'; +import withQuery from 'coral-framework/hocs/withQuery'; import {getDefinitionName} from 'coral-framework/utils'; import {withSetUserStatus, withRejectUsername} from 'coral-framework/graphql/mutations'; import FlaggedAccounts from '../containers/FlaggedAccounts'; @@ -62,26 +62,27 @@ const mapDispatchToProps = (dispatch) => newPage, }, dispatch); +const withData = withQuery(gql` + query TalkAdmin_FlaggedUsernamesCount { + flaggedUsernamesCount: userCount(query: { + action_type: FLAG, + statuses: [PENDING] + }) + ...${getDefinitionName(FlaggedAccounts.fragments.root)} + ...${getDefinitionName(FlaggedUser.fragments.root)} + me { + ...${getDefinitionName(FlaggedUser.fragments.me)} + __typename + } + } + ${FlaggedAccounts.fragments.root} + ${FlaggedUser.fragments.root} + ${FlaggedUser.fragments.me} +`); + export default compose( connect(mapStateToProps, mapDispatchToProps), withSetUserStatus, withRejectUsername, - withFragments({ - root: gql` - fragment TalkAdmin_Community on RootQuery { - flaggedUsernamesCount: userCount(query: { - action_type: FLAG, - statuses: [PENDING] - }) - ...${getDefinitionName(FlaggedAccounts.fragments.root)} - ...${getDefinitionName(FlaggedUser.fragments.root)} - me { - ...${getDefinitionName(FlaggedUser.fragments.me)} - __typename - } - } - ${FlaggedAccounts.fragments.root} - ${FlaggedUser.fragments.root} - ${FlaggedUser.fragments.me} - `}), + withData )(CommunityContainer);