1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-07-19 17:39:39 +00:00
seahub/frontend/src/components/copy-to-clipboard.js

46 lines
1.0 KiB
JavaScript
Raw Normal View History

import deselectCurrent from 'toggle-selection';
function copy(text) {
let reselectPrevious, range, selection, mark, success = false;
try {
reselectPrevious = deselectCurrent();
range = document.createRange();
selection = document.getSelection();
// 'a' is for 'copy a link to seafile markdown editor'
mark = document.createElement('a');
mark.textContent = text;
document.body.appendChild(mark);
range.selectNode(mark);
selection.addRange(range);
const successful = document.execCommand('copy');
if (!successful) {
//console.log('copy command was unsuccessful');
}
success = true;
} catch (err) {
// console.error('unable to copy using execCommand');
} finally {
if (selection) {
if (typeof selection.removeRange == 'function') {
selection.removeRange(range);
} else {
selection.removeAllRanges();
}
}
if (mark) {
document.body.removeChild(mark);
}
reselectPrevious();
}
return success;
}
export default copy;