diff --git a/client/coral-admin/src/actions/auth.js b/client/coral-admin/src/actions/auth.js
index 4e949f7b7..89b56d4dc 100644
--- a/client/coral-admin/src/actions/auth.js
+++ b/client/coral-admin/src/actions/auth.js
@@ -9,9 +9,13 @@ export const handleLogin = (email, password, recaptchaResponse) => dispatch => {
params.headers = {'X-Recaptcha-Response': recaptchaResponse};
}
return coralApi('/auth/local', params)
- .then(result => {
- const isAdmin = !!result.user.roles.filter(i => i === 'ADMIN').length;
- dispatch(checkLoginSuccess(result.user, isAdmin));
+ .then(({user}) => {
+ if (!user) {
+ return dispatch(checkLoginFailure('not logged in'));
+ }
+
+ const isAdmin = !!user.roles.filter(i => i === 'ADMIN').length;
+ dispatch(checkLoginSuccess(user, isAdmin));
})
.catch(error => {
diff --git a/client/coral-admin/src/components/BanUserDialog.js b/client/coral-admin/src/components/BanUserDialog.js
index 3e82babc6..ee5830249 100644
--- a/client/coral-admin/src/components/BanUserDialog.js
+++ b/client/coral-admin/src/components/BanUserDialog.js
@@ -47,6 +47,8 @@ const BanUserDialog = ({open, handleClose, handleBanUser, rejectComment, user, c
BanUserDialog.propTypes = {
handleBanUser: PropTypes.func.isRequired,
handleClose: PropTypes.func.isRequired,
+ rejectComment: PropTypes.func.isRequired,
+ commentId: PropTypes.string,
user: PropTypes.object.isRequired,
};
diff --git a/client/coral-admin/src/containers/Dashboard/Dashboard.js b/client/coral-admin/src/containers/Dashboard/Dashboard.js
index e43db9628..f5d0aa39b 100644
--- a/client/coral-admin/src/containers/Dashboard/Dashboard.js
+++ b/client/coral-admin/src/containers/Dashboard/Dashboard.js
@@ -4,65 +4,16 @@ import {compose} from 'react-apollo';
import {connect} from 'react-redux';
import {getMetrics} from 'coral-admin/src/graphql/queries';
import FlagWidget from './FlagWidget';
-import LikeWidget from './LikeWidget';
import ActivityWidget from './ActivityWidget';
+import CountdownTimer from 'coral-admin/src/components/CountdownTimer';
import {showBanUserDialog, hideBanUserDialog} from 'coral-admin/src/actions/moderation';
-import I18n from 'coral-framework/modules/i18n/i18n';
-import translations from 'coral-admin/src/translations';
-import {Spinner, Icon} from 'coral-ui';
-const lang = new I18n(translations);
-const refreshIntervalSeconds = 60 * 5;
+import {Spinner} from 'coral-ui';
class Dashboard extends React.Component {
- constructor (props) {
- super(props);
-
- try {
- if (window.localStorage.getItem('coral:dashboardNote') === null) {
- window.localStorage.setItem('coral:dashboardNote', 'show');
- }
- } catch (e) {
-
- // above will fail in Private Mode in some browsers.
- }
-
- this.state = {
- secondsUntilRefresh: refreshIntervalSeconds,
- dashboardNote: window.localStorage.getItem('coral:dashboardNote') || 'show'
- };
- }
-
- componentWillMount () {
- setInterval(() => { // the countdown timer
- let nextCount = this.state.secondsUntilRefresh - 1;
- if (nextCount < 0) {
- nextCount = refreshIntervalSeconds;
- this.props.data.refetch();
- }
- this.setState({secondsUntilRefresh: nextCount});
- }, 1000);
- }
-
- dismissNote = () => {
- try {
- window.localStorage.setItem('coral:dashboardNote', 'hide');
- } catch (e) {
-
- // when setItem fails in Safari Private mode
- this.setState({dashboardNote: 'hide'});
- }
- }
-
- formatTime = () => {
- const minutes = Math.floor(this.state.secondsUntilRefresh / 60);
- let seconds = (this.state.secondsUntilRefresh % 60).toString();
- if (seconds.length < 2) {
- seconds = `0${seconds}`;
- }
-
- return `${minutes}:${seconds}`;
+ reloadData = () => {
+ this.props.data.refetch();
}
render () {
@@ -71,23 +22,13 @@ class Dashboard extends React.Component {
return
- ×
-