Browse Source

fix: workflows not showing up in website

Ahmad Kholid 3 years ago
parent
commit
d455092d31

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "automa",
   "name": "automa",
-  "version": "0.16.1",
+  "version": "0.16.2",
   "description": "An extension for automating your browser by connecting blocks",
   "description": "An extension for automating your browser by connecting blocks",
   "license": "MIT",
   "license": "MIT",
   "repository": {
   "repository": {

+ 0 - 14
src/content/services/index.js

@@ -1,14 +0,0 @@
-import browser from 'webextension-polyfill';
-import webService from './web-service';
-import shortcutListener from './shortcut-listener';
-
-(async () => {
-  try {
-    const { workflows } = await browser.storage.local.get('workflows');
-
-    await webService(workflows);
-    await shortcutListener(workflows);
-  } catch (error) {
-    console.error(error);
-  }
-})();

+ 6 - 3
src/content/services/shortcut-listener.js

@@ -17,9 +17,12 @@ function getTriggerBlock(workflow) {
   return trigger;
   return trigger;
 }
 }
 
 
-export default async function (workflows) {
+(async () => {
   try {
   try {
-    const { shortcuts } = await browser.storage.local.get('shortcuts');
+    const { shortcuts, workflows } = await browser.storage.local.get([
+      'shortcuts',
+      'workflows',
+    ]);
     const shortcutsArr = Object.entries(shortcuts || {});
     const shortcutsArr = Object.entries(shortcuts || {});
 
 
     if (shortcutsArr.length === 0) return;
     if (shortcutsArr.length === 0) return;
@@ -52,4 +55,4 @@ export default async function (workflows) {
   } catch (error) {
   } catch (error) {
     console.error(error);
     console.error(error);
   }
   }
-}
+})();

+ 7 - 13
src/content/services/web-service.js

@@ -1,6 +1,5 @@
 import { openDB } from 'idb';
 import { openDB } from 'idb';
 import { nanoid } from 'nanoid';
 import { nanoid } from 'nanoid';
-import secrets from 'secrets';
 import browser from 'webextension-polyfill';
 import browser from 'webextension-polyfill';
 import { objectHasKey } from '@/utils/helper';
 import { objectHasKey } from '@/utils/helper';
 import { sendMessage } from '@/utils/message';
 import { sendMessage } from '@/utils/message';
@@ -23,10 +22,14 @@ function initWebListener() {
   return { on };
   return { on };
 }
 }
 
 
-async function listenWindowMessage(workflows) {
+(async () => {
   try {
   try {
-    if (secrets?.webOrigin.includes(window.location.origin)) return;
+    document.body.setAttribute(
+      'data-atm-ext-installed',
+      browser.runtime.getManifest().version
+    );
 
 
+    const { workflows } = await browser.storage.local.get('workflows');
     const db = await openDB('automa', 1, {
     const db = await openDB('automa', 1, {
       upgrade(event) {
       upgrade(event) {
         event.createObjectStore('store');
         event.createObjectStore('store');
@@ -61,13 +64,4 @@ async function listenWindowMessage(workflows) {
   } catch (error) {
   } catch (error) {
     console.error(error);
     console.error(error);
   }
   }
-}
-
-export default async function (workflows) {
-  await listenWindowMessage(workflows);
-
-  document.body.setAttribute(
-    'data-atm-ext-installed',
-    browser.runtime.getManifest().version
-  );
-}
+})();

+ 11 - 1
src/manifest.json

@@ -20,10 +20,20 @@
         "<all_urls>"
         "<all_urls>"
       ],
       ],
       "js": [
       "js": [
-        "services.bundle.js"
+        "shortcutListener.bundle.js"
       ],
       ],
       "run_at": "document_end",
       "run_at": "document_end",
       "all_frames": false
       "all_frames": false
+    },
+    {
+      "matches": [
+        "*://*.automa.site/*",
+        "*://automa.vercel.app/*"
+      ],
+      "js": [
+        "webService.bundle.js"
+      ],
+      "all_frames": false
     }
     }
   ],
   ],
   "permissions": [
   "permissions": [

+ 5 - 1
src/newtab/App.vue

@@ -42,7 +42,7 @@ const retrieved = ref(false);
 
 
 const currentVersion = browser.runtime.getManifest().version;
 const currentVersion = browser.runtime.getManifest().version;
 const prevVersion = localStorage.getItem('ext-version') || '0.0.0';
 const prevVersion = localStorage.getItem('ext-version') || '0.0.0';
-const isUpdated = ref(compare(currentVersion, prevVersion, '>'));
+const isUpdated = ref(false);
 
 
 function handleStorageChanged(change) {
 function handleStorageChanged(change) {
   if (change.logs) {
   if (change.logs) {
@@ -71,6 +71,10 @@ window.addEventListener('beforeunload', () => {
 
 
 onMounted(async () => {
 onMounted(async () => {
   try {
   try {
+    const { isFirstTime } = await browser.storage.local.get('isFirstTime');
+
+    isUpdated.value = !isFirstTime && compare(currentVersion, prevVersion, '>');
+
     await store.dispatch('retrieve', ['workflows', 'logs', 'collections']);
     await store.dispatch('retrieve', ['workflows', 'logs', 'collections']);
     await store.dispatch('retrieveWorkflowState');
     await store.dispatch('retrieveWorkflowState');
 
 

+ 20 - 2
webpack.config.js

@@ -43,7 +43,20 @@ const options = {
     popup: path.join(__dirname, 'src', 'popup', 'index.js'),
     popup: path.join(__dirname, 'src', 'popup', 'index.js'),
     background: path.join(__dirname, 'src', 'background', 'index.js'),
     background: path.join(__dirname, 'src', 'background', 'index.js'),
     contentScript: path.join(__dirname, 'src', 'content', 'index.js'),
     contentScript: path.join(__dirname, 'src', 'content', 'index.js'),
-    services: path.join(__dirname, 'src', 'content', 'services', 'index.js'),
+    shortcutListener: path.join(
+      __dirname,
+      'src',
+      'content',
+      'services',
+      'shortcut-listener.js'
+    ),
+    webService: path.join(
+      __dirname,
+      'src',
+      'content',
+      'services',
+      'web-service.js'
+    ),
     elementSelector: path.join(
     elementSelector: path.join(
       __dirname,
       __dirname,
       'src',
       'src',
@@ -53,7 +66,12 @@ const options = {
     ),
     ),
   },
   },
   chromeExtensionBoilerplate: {
   chromeExtensionBoilerplate: {
-    notHotReload: ['contentScript', 'services', 'elementSelector'],
+    notHotReload: [
+      'contentScript',
+      'webService',
+      'shortcutListener',
+      'elementSelector',
+    ],
   },
   },
   output: {
   output: {
     path: path.resolve(__dirname, 'build'),
     path: path.resolve(__dirname, 'build'),