@modern-kit/react
Version:
58 lines (55 loc) • 1.47 kB
JavaScript
import { useState, useCallback } from 'react';
import { copyClipboardText, copyClipboardImage, readClipboardText, readClipboardContents } from '@modern-kit/utils';
function useClipboard() {
const [copiedData, setCopiedData] = useState(null);
const [readData, setReadData] = useState(
null
);
const copyText = useCallback(async (value) => {
try {
const result = await copyClipboardText(value);
setCopiedData(result);
return true;
} catch {
setCopiedData(null);
return false;
}
}, []);
const copyImage = useCallback(
async (src, options) => {
const toText = options?.toText ?? false;
try {
const result = await copyClipboardImage(src, { toText });
setCopiedData(result);
return true;
} catch {
setCopiedData(null);
return false;
}
},
[]
);
const readText = useCallback(async () => {
try {
const result = await readClipboardText();
setReadData(result);
return true;
} catch {
setReadData(null);
return false;
}
}, []);
const readContents = useCallback(async () => {
try {
const result = await readClipboardContents();
setReadData(result);
return true;
} catch {
setReadData(null);
return false;
}
}, []);
return { copiedData, readData, copyText, copyImage, readText, readContents };
}
export { useClipboard };
//# sourceMappingURL=index.mjs.map