From 37e866cdd50166a146f4e6e8e2e03e9260a3d90f Mon Sep 17 00:00:00 2001 From: Cat1007 <54425790+Cat1007@users.noreply.github.com> Date: Fri, 10 Nov 2023 00:38:26 +0800 Subject: [PATCH] fix(useClipboard): use legacy way when without permission (#3379) Co-authored-by: catye Co-authored-by: Eduardo San Martin Morote Co-authored-by: Anthony Fu --- packages/core/useClipboard/index.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/core/useClipboard/index.ts b/packages/core/useClipboard/index.ts index d2a7b59eeb6..a3ef71f93b0 100644 --- a/packages/core/useClipboard/index.ts +++ b/packages/core/useClipboard/index.ts @@ -8,6 +8,7 @@ import { useEventListener } from '../useEventListener' import { useSupported } from '../useSupported' import type { ConfigurableNavigator } from '../_configurable' import { defaultNavigator } from '../_configurable' +import { usePermission } from '../usePermission' export interface UseClipboardOptions extends ConfigurableNavigator { /** @@ -62,13 +63,15 @@ export function useClipboard(options: UseClipboardOptions (navigator && 'clipboard' in navigator)) + const permissionRead = usePermission('clipboard-read') + const permissionWrite = usePermission('clipboard-write') const isSupported = computed(() => isClipboardApiSupported.value || legacy) const text = ref('') const copied = ref(false) const timeout = useTimeoutFn(() => copied.value = false, copiedDuring) function updateText() { - if (isClipboardApiSupported.value) { + if (isClipboardApiSupported.value && permissionRead.value !== 'denied') { navigator!.clipboard.readText().then((value) => { text.value = value }) @@ -83,7 +86,7 @@ export function useClipboard(options: UseClipboardOptions