UNPKG

@modern-kit/utils

Version:
43 lines (39 loc) 1.4 kB
import { convertImageToBlob } from '../../file/convertImageToBlob/index.mjs'; import { isClient } from '../../device/isClient/index.mjs'; import { copyClipboardText } from '../copyClipboardText/index.mjs'; import '../../device/isServer/index.mjs'; import '../copyFallbackClipboardText/index.mjs'; const copyFallbackImage = async (src) => { const response = await fetch(src); const textData = await response.text(); return copyClipboardText(textData); }; async function copyClipboardImage(src, options) { if (!isClient()) { throw new Error("Cannot be executed unless it is a client environment."); } try { const hasNavigatorClipboard = "clipboard" in window.navigator; if (!hasNavigatorClipboard) { return copyFallbackImage(src); } const hasNavigatorClipboardWrite = "write" in window.navigator.clipboard; if (!hasNavigatorClipboardWrite) { return copyFallbackImage(src); } const toText = options?.toText ?? false; if (toText) { return copyFallbackImage(src); } const blobData = await convertImageToBlob(src, "png"); await navigator.clipboard.write([ new ClipboardItem({ [blobData.type]: blobData }) ]); return blobData; } catch (err) { console.error(`Failed to copy to clipboard. message: ${err.message}`); throw err; } } export { copyClipboardImage }; //# sourceMappingURL=index.mjs.map