Skip to content
This repository has been archived by the owner on Sep 26, 2024. It is now read-only.

Commit

Permalink
coderrabbit PR feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
Kayla Fitzsimmons authored and Kayla Fitzsimmons committed Sep 19, 2024
1 parent 1676c84 commit c0dcdaf
Showing 1 changed file with 69 additions and 12 deletions.
81 changes: 69 additions & 12 deletions apps/mocksi-lite-next/src/pages/background/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
import { AppEvents, AuthEvents, LayoutEvents } from "@pages/events";
import {
AppEvents,
AuthEvents,
DemoEditEvents,
LayoutEvents,
} from "@pages/events";
import { jwtDecode } from "jwt-decode";

console.log("background script loaded");
Expand Down Expand Up @@ -109,6 +114,19 @@ addEventListener("install", () => {
});
});

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) {
Expand Down Expand Up @@ -149,6 +167,21 @@ chrome.runtime.onMessageExternal.addListener(
// execute in async block so that we return true
// synchronously, telling chrome to wait for the response
(async () => {
if (
request.source === "extension/top" &&
request.message === AppEvents.EDIT_DEMO_STOP
) {
if (mainIframeSrcPort) {
// notify extension/main that demo edit mode exited in extension/top
mainIframeSrcPort.postMessage({
...request,
message: AppEvents.EDIT_DEMO_STOP,
});
} else {
console.log("mainIframeSrcPort is not connected");
}
}

if (request.message === AuthEvents.AUTH_ERROR) {
await clearAuth();
sendResponse({
Expand Down Expand Up @@ -178,7 +211,8 @@ chrome.runtime.onMessageExternal.addListener(
message: LayoutEvents.NO_TAB,
status: "ok",
});
return;
console.error("No tab found");
return true;
}

if (
Expand All @@ -201,16 +235,39 @@ chrome.runtime.onMessageExternal.addListener(
showDefaultIcon(tab.id);
}

chrome.tabs.sendMessage(
tab.id,
{
data: request.data,
message: request.message,
},
(response) => {
sendResponse(response);
},
);
// send message to iframes and reactor in mocksi-extension
chrome.tabs.sendMessage(tab.id, request, async (response) => {
console.log("response from content script in background:", response);
if (response.message === DemoEditEvents.UNDO) {
// pass updated modifications from reactor to extension/main to store
if (mainIframeSrcPort) {
await mainIframeSrcPort.postMessage({
...response,
status: "ok", // response handler expects status
});
} else {
console.log("mainIframeSrcPort is not connected");
}
}
if (
request.message === AppEvents.EDIT_DEMO_START ||
request.message === DemoEditEvents.NEW_EDIT ||
request.message === DemoEditEvents.CHAT_RESPONSE
) {
// notify extension/top # of edits changed
if (topIframeSrcPort) {
await topIframeSrcPort.postMessage({
...response,
status: "ok",
});
} else {
console.log("topIframeSrcPort is not connected");
}
}

sendResponse(response);
});
return true;
}
})();

Expand Down

0 comments on commit c0dcdaf

Please sign in to comment.