import React from "react"; import Input from "antd/lib/input"; import Icon from "antd/lib/icon"; import Tooltip from "antd/lib/tooltip"; export default class InputWithCopy extends React.Component { constructor(props) { super(props); this.state = { copied: null }; this.ref = React.createRef(); this.copyFeatureSupported = document.queryCommandSupported("copy"); this.resetCopyState = null; } componentWillUnmount() { if (this.resetCopyState) { clearTimeout(this.resetCopyState); } } copy = () => { // select text this.ref.current.select(); // copy try { const success = document.execCommand("copy"); if (!success) { throw new Error(); } this.setState({ copied: "Copied!" }); } catch (err) { this.setState({ copied: "Copy failed", }); } // reset tooltip this.resetCopyState = setTimeout(() => this.setState({ copied: null }), 2000); }; render() { const copyButton = ( ); return ; } }