Files
nocodb/packages/nc-gui/composables/useIsCopied.ts
2025-01-13 15:13:40 +05:30

24 lines
606 B
TypeScript

import { message } from 'ant-design-vue'
export function useIsCopied(timeoutInMs = 3000) {
let copiedTimeoutId: ReturnType<typeof setTimeout>
const isCopied = ref(false)
async function performCopy(copyCallback: () => void) {
if (copiedTimeoutId) clearTimeout(copiedTimeoutId)
try {
await copyCallback()
isCopied.value = true
copiedTimeoutId = setTimeout(() => {
isCopied.value = false
clearTimeout(copiedTimeoutId)
}, timeoutInMs)
} catch (e: any) {
if (e?.message) message.error(e.message)
}
}
return { isCopied, performCopy }
}