From eaaa9da38eca86ec7019b4dcdae6720c63099f65 Mon Sep 17 00:00:00 2001 From: Kayla Fitzsimmons Date: Fri, 20 Sep 2024 11:54:04 -0700 Subject: [PATCH] =?UTF-8?q?move=20ports=20higher=20in=20file=20and=20retur?= =?UTF-8?q?n=20true=20in=20the=20correct=20place=20to=20kee=E2=80=A6=20(#1?= =?UTF-8?q?90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * move ports higher in file and return true in the correct place to keep connections open * listen to the response not the request :face-palm: --------- Co-authored-by: Kayla Fitzsimmons --- .../src/pages/background/index.ts | 59 +++++++++---------- 1 file changed, 27 insertions(+), 32 deletions(-) diff --git a/apps/mocksi-lite-next/src/pages/background/index.ts b/apps/mocksi-lite-next/src/pages/background/index.ts index 9265479..0f955d0 100644 --- a/apps/mocksi-lite-next/src/pages/background/index.ts +++ b/apps/mocksi-lite-next/src/pages/background/index.ts @@ -13,6 +13,26 @@ const MOCKSI_AUTH = "mocksi-auth"; let fallbackTab: null | chrome.tabs.Tab = null; let prevLayoutEvent = ""; +let mainIframeSrcPort: null | chrome.runtime.Port = null; +let topIframeSrcPort: null | chrome.runtime.Port = null; + +addEventListener("install", () => { + // TODO test if this works on other browsers + chrome.tabs.create({ + url: import.meta.env.VITE_NEST_APP, + }); +}); + +chrome.runtime.onConnectExternal.addListener((port) => { + console.log("connecting...", port); + if (port.name === "extension/main") { + mainIframeSrcPort = port; + } + if (port.name === "extension/top") { + topIframeSrcPort = port; + } +}); + const getAuth = async (): Promise { - // TODO test if this works on other browsers - chrome.tabs.create({ - url: import.meta.env.VITE_NEST_APP, - }); -}); - -let mainIframeSrcPort: null | chrome.runtime.Port = null; -let topIframeSrcPort: null | chrome.runtime.Port = null; - -chrome.runtime.onConnectExternal.addListener((port) => { - console.log("connecting...", port); - if (port.name === "extension/main") { - mainIframeSrcPort = port; - } - if (port.name === "extension/top") { - topIframeSrcPort = port; - } -}); - // when user clicks toolbar mount extension chrome.action.onClicked.addListener((tab) => { if (!tab?.id) { console.log("No tab exits click, could not mount extension"); - return; + return true; } // store the tab they clicked on to open the extension // so we can use it as a fallback @@ -147,6 +147,7 @@ chrome.action.onClicked.addListener((tab) => { }); prevLayoutEvent = LayoutEvents.HIDE; } + return true; }); chrome.runtime.onMessageExternal.addListener( @@ -199,12 +200,7 @@ chrome.runtime.onMessageExternal.addListener( } else { const tab = await getCurrentTab(); if (!tab?.id) { - sendResponse({ - message: LayoutEvents.NO_TAB, - source: "background", - status: "ok", - }); - console.error("No tab found"); + console.error("No tab found: "); return true; } @@ -243,9 +239,9 @@ chrome.runtime.onMessageExternal.addListener( } } if ( - request.message === AppEvents.EDIT_DEMO_START || - request.message === DemoEditEvents.NEW_EDIT || - request.message === DemoEditEvents.CHAT_RESPONSE + response.message === AppEvents.EDIT_DEMO_START || + response.message === DemoEditEvents.CHAT_RESPONSE || + response.message === DemoEditEvents.NEW_EDIT ) { // notify extension/top # of edits changed if (topIframeSrcPort) { @@ -259,11 +255,10 @@ chrome.runtime.onMessageExternal.addListener( } sendResponse(response); + return true; }); - return true; } })(); - return true; }, );