HEX
Server: Apache/2.4.68 (Debian)
System: Linux as-cs-widget-demo-us-central1 6.1.0-44-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.164-1 (2026-03-09) x86_64
User: root (0)
PHP: 8.2.32
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/wp-recipe-maker/assets/js/shared/CopyToClipboardIcon.js
import React, { Component } from 'react';
import CopyToClipboard from 'react-copy-to-clipboard';

import Icon from 'Shared/Icon';
import Tooltip from 'Shared/Tooltip';
import { __wprm } 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="wprm-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 ? __wprm( 'Copied!' ) : __wprm( 'Copy to clipboard' ) }>
                            <span>{ this.props.text }</span>
                        </Tooltip>
                        :
                        <Icon
                            type="clipboard"
                            title={ this.state.copied ? __wprm( 'Copied!' ) : __wprm( 'Copy to clipboard' ) }
                        />
                    }
                </span>
            </CopyToClipboard>
        );
    }
}