Files
ui/src/runtime/plugins/clipboard.client.ts
2022-07-21 23:37:05 +02:00

34 lines
764 B
TypeScript

import { useClipboard } from '@vueuse/core'
import { defineNuxtPlugin } from '#app'
export default defineNuxtPlugin((nuxtApp) => {
const { copy: copyToClipboard, isSupported } = useClipboard()
function copy (text: string, success: { title?: string, description?: string } = {}, failure: { title?: string, description?: string } = {}) {
if (!isSupported) {
return
}
copyToClipboard(text).then(() => {
if (!success.title && !success.description) {
return
}
nuxtApp.$toast.success(success)
}, function (e) {
nuxtApp.$toast.error({
...failure,
description: failure.description || e.message
})
})
}
return {
provide: {
clipboard: {
copy
}
}
}
})