Browse Source

feat(newtab): clear alarms and trigger when delete workflow

Ahmad Kholid 3 years ago
parent
commit
1cf6b74ec1

+ 0 - 3
src/components/newtab/LogsTable.vue

@@ -59,9 +59,6 @@ function formatDate(date, format) {
 }
 </script>
 <style scoped>
-.log-time {
-  @apply text-gray-600 dark:text-gray-200;
-}
 .log-time svg {
   @apply mr-2;
 }

+ 0 - 1
src/components/newtab/workflow/WorkflowBuilder.vue

@@ -99,7 +99,6 @@ export default {
       emit('load', editor.value);
 
       if (props.data) {
-        /* to-do delete replace method */
         const data =
           typeof props.data === 'string' ? JSON.parse(props.data) : props.data;
 

+ 0 - 1
src/components/newtab/workflow/edit/EditTrigger.vue

@@ -77,7 +77,6 @@
   </transition-expand>
 </template>
 <script setup>
-/* to-do add visit website trigger */
 import dayjs from 'dayjs';
 
 const props = defineProps({

+ 19 - 0
src/models/workflow.js

@@ -1,5 +1,6 @@
 import { Model } from '@vuex-orm/core';
 import { nanoid } from 'nanoid';
+import browser from 'webextension-polyfill';
 import Log from './log';
 
 class Workflow extends Model {
@@ -34,6 +35,24 @@ class Workflow extends Model {
 
     return res;
   }
+
+  static async afterDelete({ id }) {
+    try {
+      const { visitWebTriggers } = await browser.storage.local.get(
+        'visitWebTriggers'
+      );
+      const index = visitWebTriggers.findIndex((item) => item.id === id);
+
+      await browser.alarms.clear(id);
+
+      if (index === -1) return;
+
+      visitWebTriggers.splice(index, 1);
+      await browser.storage.local.set({ visitWebTriggers });
+    } catch (error) {
+      console.error(error);
+    }
+  }
 }
 
 export default Workflow;

+ 0 - 1
src/newtab/pages/workflows/[id].vue

@@ -209,7 +209,6 @@ async function handleWorkflowTrigger({ data }) {
     console.error(error);
   }
 }
-/* to-do clear alarms and trigger storage when delete workflow */
 function saveWorkflow() {
   const data = editor.value.export();