Bladeren bron

fix: insert text in clipboard block not working in firefox

Ahmad Kholid 2 jaren geleden
bovenliggende
commit
a9b12f4735
2 gewijzigde bestanden met toevoegingen van 17 en 3 verwijderingen
  1. 16 2
      src/components/newtab/workflow/edit/EditClipboard.vue
  2. 1 1
      src/manifest.firefox.json

+ 16 - 2
src/components/newtab/workflow/edit/EditClipboard.vue

@@ -6,7 +6,7 @@
       :placeholder="t('common.description')"
       @change="updateData({ description: $event })"
     />
-    <template v-if="permission.has.clipboardRead">
+    <template v-if="hasAllPermissions">
       <ui-select
         :model-value="data.type"
         class="mt-4 w-full"
@@ -50,6 +50,7 @@
   </div>
 </template>
 <script setup>
+import { computed } from 'vue';
 import { useI18n } from 'vue-i18n';
 import { useHasPermissions } from '@/composable/hasPermissions';
 import InsertWorkflowData from './InsertWorkflowData.vue';
@@ -63,9 +64,22 @@ const props = defineProps({
 const emit = defineEmits(['update:data']);
 
 const types = ['get', 'insert'];
+const permissions = ['clipboardRead'];
+const isFirefox = BROWSER_TYPE === 'firefox';
+
+if (isFirefox) {
+  permissions.push('clipboardWrite');
+}
 
 const { t } = useI18n();
-const permission = useHasPermissions(['clipboardRead']);
+const permission = useHasPermissions(permissions);
+
+const hasAllPermissions = computed(() => {
+  if (isFirefox)
+    return permission.has.clipboardRead && permission.has.clipboardWrite;
+
+  return permission.has.clipboardRead;
+});
 
 function updateData(value) {
   emit('update:data', { ...props.data, ...value });

+ 1 - 1
src/manifest.firefox.json

@@ -40,7 +40,7 @@
       "all_frames": false
     }
   ],
-  "optional_permissions": ["clipboardRead", "downloads", "notifications", "cookies"],
+  "optional_permissions": ["clipboardRead", "clipboardWrite", "downloads", "notifications", "cookies"],
   "permissions": [
     "tabs",
     "proxy",