diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js
index c2036247d..63c9e13ab 100644
--- a/client/coral-admin/src/routes/Moderation/components/Moderation.js
+++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js
@@ -14,8 +14,13 @@ import StorySearch from '../containers/StorySearch';
import {Spinner} from 'coral-ui';
export default class Moderation extends Component {
- state = {
- selectedIndex: 0,
+ constructor() {
+ super();
+
+ this.state = {
+ selectedIndex: 0
+ };
+
}
componentWillMount() {
@@ -31,7 +36,7 @@ export default class Moderation extends Component {
}
onClose = () => {
- this.toggleModal(false);
+ this.props.toggleModal(false);
}
closeSearch = () => {
@@ -60,24 +65,22 @@ export default class Moderation extends Component {
getComments = () => {
const {root, route} = this.props;
const activeTab = route.path === ':id' ? 'premod' : route.path;
- return root[activeTab];
+ return root[activeTab].nodes;
}
select = (next) => () => {
if (next) {
- this.setState((prevState) =>
- ({
- ...prevState,
- selectedIndex: prevState.selectedIndex < this.getComments().length - 1
- ? prevState.selectedIndex + 1 : prevState.selectedIndex
- }));
+ this.setState((state) => ({
+ ...state,
+ selectedIndex: state.selectedIndex < this.getComments().length - 1
+ ? state.selectedIndex + 1 : state.selectedIndex
+ }));
} else {
- this.setState((prevState) =>
- ({
- ...prevState,
- selectedIndex: prevState.selectedIndex > 0 ?
- prevState.selectedIndex - 1 : prevState.selectedIndex
- }));
+ this.setState((state) => ({
+ ...state,
+ selectedIndex: state.selectedIndex > 0
+ ? state.selectedIndex - 1 : state.selectedIndex
+ }));
}
}
diff --git a/client/coral-admin/src/routes/Moderation/components/UserDetail.js b/client/coral-admin/src/routes/Moderation/components/UserDetail.js
index 688ac75d0..abc9f4440 100644
--- a/client/coral-admin/src/routes/Moderation/components/UserDetail.js
+++ b/client/coral-admin/src/routes/Moderation/components/UserDetail.js
@@ -1,11 +1,19 @@
import React, {PropTypes} from 'react';
-import {Button, Drawer} from 'coral-ui';
+import {Button, Drawer, Copy} from 'coral-ui';
import styles from './UserDetail.css';
import Slot from 'coral-framework/components/Slot';
import Comment from './Comment';
import {actionsMap} from '../helpers/moderationQueueActionsMap';
export default class UserDetail extends React.Component {
+
+ constructor() {
+ super();
+ this.state = {
+ emailCopied: false
+ };
+ }
+
static propTypes = {
id: PropTypes.string.isRequired,
hideUserDetail: PropTypes.func.isRequired,
@@ -22,16 +30,6 @@ export default class UserDetail extends React.Component {
bulkReject: PropTypes.func.isRequired,
}
- copyPermalink = () => {
- this.profile.select();
- try {
- document.execCommand('copy');
- } catch (e) {
-
- /* nothing */
- }
- }
-
rejectThenReload = (info) => {
this.props.rejectComment(info).then(() => {
this.props.data.refetch();
@@ -52,6 +50,16 @@ export default class UserDetail extends React.Component {
this.props.changeStatus('rejected');
}
+ showCopied() {
+ this.setState({
+ emailCopied: true
+ }, () => {
+ setTimeout(() => this.setState({
+ emailCopied: false
+ }), 3000);
+ });
+ }
+
render () {
const {
root: {
@@ -90,8 +98,14 @@ export default class UserDetail extends React.Component {
return (
{user.username}
-
{profile && this.profile = ref} value={profile} />}
+
+ this.showCopied()} text={profile} className={styles.profileEmail}>
+
+
+
-
+
{open
?