fleet/frontend/utilities/copy_text.js

34 lines
765 B
JavaScript
Raw Normal View History

2017-01-20 17:52:57 +00:00
import select from 'select';
const removeSelectedText = () => {
return global.window.getSelection().removeAllRanges();
};
export const copyText = (elementSelector) => {
const { document } = global;
const element = document.querySelector(elementSelector);
const input = element.querySelector('input');
input.type = 'text';
input.disabled = false;
2017-01-20 17:52:57 +00:00
select(input);
2017-01-20 17:52:57 +00:00
const canCopy = document.queryCommandEnabled('copy');
if (!canCopy) {
return false;
}
document.execCommand('copy');
input.type = 'password';
input.disabled = true;
2017-01-20 17:52:57 +00:00
removeSelectedText();
return true;
};
export const COPY_TEXT_SUCCESS = 'Text copied to clipboard';
export const COPY_TEXT_ERROR = 'Text not copied. Please copy manually.';
export default copyText;