mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 10:34:17 +00:00
Add clipboard paste utility functions
This commit is contained in:
parent
d853b1d020
commit
9512a6ccb2
33
packages/app/src/utils/pasteFromClipboard/index.js
Normal file
33
packages/app/src/utils/pasteFromClipboard/index.js
Normal file
@ -0,0 +1,33 @@
|
||||
export async function pasteFromClipboard(element) {
|
||||
if (!navigator.clipboard) {
|
||||
throw new Error(
|
||||
"Clipboard API not available in this browser or context",
|
||||
)
|
||||
}
|
||||
|
||||
if (!element || !(element instanceof HTMLElement)) {
|
||||
console.error("Invalid element provided to pasteFromClipboard")
|
||||
return Promise.reject(new Error("Invalid element provided"))
|
||||
}
|
||||
|
||||
let data = await navigator.clipboard.read()
|
||||
|
||||
data = data[0]
|
||||
|
||||
data = await data.getType(data.types[0])
|
||||
|
||||
const event = new ClipboardEvent("paste", {
|
||||
clipboardData: new DataTransfer(),
|
||||
})
|
||||
|
||||
element.focus()
|
||||
element.dispatchEvent(event)
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
export function isClipboardSupported() {
|
||||
return !!navigator.clipboard
|
||||
}
|
||||
|
||||
export default pasteFromClipboard
|
Loading…
x
Reference in New Issue
Block a user