mirror of
https://gitlab.com/bramw/baserow.git
synced 2025-04-12 16:28:06 +00:00
26 lines
912 B
JavaScript
26 lines
912 B
JavaScript
/**
|
|
* Copies the given text to the clipboard by temporarily creating a textarea and
|
|
* using the documents `copy` command.
|
|
*/
|
|
export const copyToClipboard = (text) => {
|
|
navigator.clipboard.writeText(text)
|
|
}
|
|
|
|
/**
|
|
* Values should be an object with mimetypes as key and clipboard content for this type
|
|
* as value. This allow add the same data with multiple representation to the clipboard.
|
|
* We can have a row saved as tsv string or as json string. Values must be strings.
|
|
* @param {object} values object of mimetypes -> clipboard content.
|
|
*/
|
|
export const setRichClipboard = (values) => {
|
|
const listener = (e) => {
|
|
Object.entries(values).forEach(([type, content]) => {
|
|
e.clipboardData.setData(type, content)
|
|
})
|
|
e.preventDefault()
|
|
e.stopPropagation()
|
|
}
|
|
document.addEventListener('copy', listener)
|
|
document.execCommand('copy')
|
|
document.removeEventListener('copy', listener)
|
|
}
|