diff --git a/client/coral-admin/src/routes/Moderation/components/ButtonCopyToClipboard.js b/client/coral-admin/src/routes/Moderation/components/ButtonCopyToClipboard.js new file mode 100644 index 000000000..ba25d533c --- /dev/null +++ b/client/coral-admin/src/routes/Moderation/components/ButtonCopyToClipboard.js @@ -0,0 +1,35 @@ +import React from 'react'; +import {Button} from 'coral-ui'; +import t from 'coral-framework/services/i18n'; +import {withCopyToClipboard} from 'coral-framework/hocs'; + +class ButtonCopyToClipboard extends React.Component { + + constructor() { + super(); + + this.state = { + emailCopied: false + }; + } + + showCopied() { + this.setState({ + emailCopied: true + }, () => { + setTimeout(() => this.setState({ + emailCopied: false + }), 3000); + }); + } + + render () { + return ( + + ); + } +} + +export default withCopyToClipboard(ButtonCopyToClipboard); diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index 63c9e13ab..6d3b975db 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -207,6 +207,7 @@ export default class Moderation extends Component { shortcutsNoteVisible={moderation.shortcutsNoteVisible} open={moderation.modalOpen} onClose={this.onClose}/> + {moderation.userDetailId && ( )} + - {this.state.emailCopied ? t('common.copied') : t('common.copy')} - - ); - - console.log(CopyToClipboard) - return (

{user.username}

{profile && this.profile = ref} value={profile} />} +
(WrappedComponent) => { - console.log(config, WrappedComponent) +export default (WrappedComponent) => { class withCopyToClipboard extends React.Component { - componentDidMount() { - const node = ReactDOM.findDOMNode(WrappedComponent); - const clipboard = new Clipboard(node); + const clipboard = new Clipboard(ReactDOM.findDOMNode(this)); clipboard.on('success', (e) => { - this.props.onCopy(); + if (this.props.onCopy) { + this.props.onCopy(); + } e.clearSelection(); }); } render() { - const {target = '', text = ''} = config; + const {target = '', text = '', className = '', ...rest} = this.props; return ; } } diff --git a/client/coral-ui/components/Button.js b/client/coral-ui/components/Button.js index 6d3dc94d2..cbfb6ad61 100644 --- a/client/coral-ui/components/Button.js +++ b/client/coral-ui/components/Button.js @@ -2,20 +2,23 @@ import React from 'react'; import styles from './Button.css'; import Icon from './Icon'; -const Button = ({cStyle = 'local', children, className, raised = false, full = false, icon = '', ...props}) => ( - -); - -export default Button; +export default class Button extends React.Component { + render() { + const {cStyle = 'local', children, className, raised = false, full = false, icon = '', ...props} = this.props; + return ( + + ); + } +}