1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-04-12 16:28:06 +00:00
bramw_baserow/web-frontend/modules/database/utils/clipboard.js
2022-08-05 13:52:33 +00:00

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)
}