mirror of
https://github.com/wassname/talk.git
synced 2026-07-09 00:48:15 +08:00
30 lines
720 B
JavaScript
30 lines
720 B
JavaScript
import React from 'react';
|
|
import ReactDOM from 'react-dom';
|
|
import Clipboard from 'clipboard';
|
|
|
|
export default (WrappedComponent) => {
|
|
class WithCopyToClipboard extends React.Component {
|
|
componentDidMount() {
|
|
const clipboard = new Clipboard(ReactDOM.findDOMNode(this));
|
|
|
|
clipboard.on('success', (e) => {
|
|
e.clearSelection();
|
|
});
|
|
}
|
|
|
|
render() {
|
|
const {copyTarget = '', copyText = '', className = '', ...rest} = this.props;
|
|
|
|
return <WrappedComponent
|
|
className={className}
|
|
data-clipboard-action="copy"
|
|
data-clipboard-text={copyText}
|
|
data-clipboard-target={copyTarget}
|
|
{...rest}
|
|
/>;
|
|
}
|
|
}
|
|
|
|
return WithCopyToClipboard;
|
|
};
|