UNPKG

labo-components

Version:
36 lines (28 loc) 1 kB
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;