labo-components
Version:
36 lines (28 loc) • 1 kB
JSX
import React from 'react';
import PropTypes from 'prop-types';
class CopyToClipboard extends React.Component {
constructor(props) {
super(props);
this.randomId = 'bg__saveToClipboard-' + Math.floor(Math.random() * 10000);
}
copyToClipboard() {
const textField = document.createElement('textarea');
textField.innerHTML = this.props.textToSave;
const parentElement = document.getElementById(this.randomId);
parentElement.appendChild(textField);
textField.select();
document.execCommand('copy');
parentElement.removeChild(textField);
}
render() {
return (
<button id={this.randomId} type="button" onClick={this.copyToClipboard.bind(this)} className="btn btn-primary bg__copy-to-clipboard">
<i className="fas fa-copy" />
</button>
)
}
}
CopyToClipboard.propTypes = {
textToSave: PropTypes.string.isRequired
};
export default CopyToClipboard;