Explorar o código

fix: error when open imported workflow

Ahmad Kholid %!s(int64=3) %!d(string=hai) anos
pai
achega
451039d02a

+ 1 - 1
src/background/workflow-engine/engine.js

@@ -312,7 +312,7 @@ class WorkflowEngine {
       return;
     }
 
-    const disableTimeoutKeys = ['delay', 'javascript-code'];
+    const disableTimeoutKeys = ['delay', 'javascript-code', 'webhook'];
 
     if (!disableTimeoutKeys.includes(block.name)) {
       this.workflowTimeout = setTimeout(() => {

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

@@ -58,6 +58,7 @@ import { onMounted, shallowRef, reactive, getCurrentInstance } from 'vue';
 import emitter from 'tiny-emitter/instance';
 import { useI18n } from 'vue-i18n';
 import { tasks } from '@/utils/shared';
+import { parseJSON } from '@/utils/helper';
 import { useGroupTooltip } from '@/composable/groupTooltip';
 import drawflow from '@/lib/drawflow';
 
@@ -185,9 +186,11 @@ export default {
       if (props.data) {
         const data =
           typeof props.data === 'string'
-            ? JSON.parse(props.data.replace(/BlockNewTab/g, 'BlockBasic'))
+            ? parseJSON(props.data.replace(/BlockNewTab/g, 'BlockBasic'), null)
             : props.data;
 
+        if (!data) return;
+
         editor.value.import(data);
       } else {
         editor.value.addNode(

+ 1 - 1
src/models/workflow.js

@@ -16,7 +16,7 @@ class Workflow extends Model {
       name: this.string(''),
       icon: this.string('riGlobalLine'),
       data: this.attr(null),
-      drawflow: this.string(''),
+      drawflow: this.attr(''),
       dataColumns: this.attr([]),
       description: this.string(''),
       globalData: this.string('[{ "key": "value" }]'),

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

@@ -227,7 +227,6 @@ const logs = computed(() =>
     .orderBy('startedAt', 'desc')
     .get()
 );
-
 const updateBlockData = debounce((data) => {
   let payload = data;
 

+ 3 - 1
src/utils/workflow-data.js

@@ -29,7 +29,9 @@ export function exportWorkflow(workflow) {
     'globalData',
     'description',
   ];
-  const content = {};
+  const content = {
+    extVersion: chrome.runtime.getManifest().version,
+  };
 
   keys.forEach((key) => {
     content[key] = workflow[key];