# wp-ultimate-post-grid/3.3.0/assets/js/shared/CopyToClipboardIcon.js

WP Ultimate Post Grid, version 3.3.0. 61 lines.

- Page: https://pluginprobe.com/plugins/wp-ultimate-post-grid/3.3.0/code/assets/js/shared/CopyToClipboardIcon.js
- Raw: https://pluginprobe.com/plugins/wp-ultimate-post-grid/3.3.0/raw/assets/js/shared/CopyToClipboardIcon.js
- Modified: 2020-01-24T07:47:12+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/wp-ultimate-post-grid/3.3.0/code/assets/js/shared/CopyToClipboardIcon.js#L10-L20`.

```javascript

import React, { Component } from 'react';
import CopyToClipboard from 'react-copy-to-clipboard';

import Icon from 'Shared/Icon';
import Tooltip from 'Shared/Tooltip';
import { __wpupg } from 'Shared/Translations';

import '../../css/admin/shared/copy-clipboard.scss';

export default class CopyToClipboardIcon extends Component {
    constructor(props) {
        super(props);

        this.state = {
            copied: false,
        }
    }

    onCopy() {
        this.setState({
            copied: true,
        }, () => {
            setTimeout(() => {
                this.setState({
                    copied: false,
                });
            }, 2000);
        });
    }

    render() {
        return (
            <CopyToClipboard
                text={this.props.text}
                onCopy={this.onCopy.bind(this)}
            >
                <span
                    className="wpupg-admin-table-container-copy"
                    style={{
                        opacity: this.state.copied ? 0.2 : 1
                    }}
                >
                    {
                        this.props.hasOwnProperty( 'type' )
                        && 'text' === this.props.type
                        ?
                        <Tooltip content={ this.state.copied ? __wpupg( 'Copied!' ) : __wpupg( 'Copy to clipboard' ) }>
                            <span>{ this.props.text }</span>
                        </Tooltip>
                        :
                        <Icon
                            type="clipboard"
                            title={ this.state.copied ? __wpupg( 'Copied!' ) : __wpupg( 'Copy to clipboard' ) }
                        />
                    }
                </span>
            </CopyToClipboard>
        );
    }
}
```
