feat(plugins): clipboard (#29)

This commit is contained in:
Sylvain Marroufin
2022-02-02 17:14:41 +01:00
committed by GitHub
parent ed499b3b21
commit 832ffe4323
3 changed files with 37 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
import { defineNuxtPlugin } from '#app'
import { ClipboardPlugin } from '../types/clipboard'
export default defineNuxtPlugin((nuxtApp) => {
function copy (text: string, success: { title?: string, description?: string } = {}, failure: { title?: string, description?: string } = {}) {
if (!navigator?.clipboard) {
return
}
navigator.clipboard.writeText(text).then(() => {
if (!success.title && !success.description) {
return
}
nuxtApp.$toast.success(success)
}, function (e) {
nuxtApp.$toast.error({
...failure,
description: failure.description || e.message
})
})
}
nuxtApp.provide('clipboard', {
copy
})
})
declare module '#app' {
interface NuxtApp {
$clipboard: ClipboardPlugin
}
}