diff --git a/apps/extension/components/TokenScriptIframe.tsx b/apps/extension/components/TokenScriptIframe.tsx index a2bc5cf..40a551e 100644 --- a/apps/extension/components/TokenScriptIframe.tsx +++ b/apps/extension/components/TokenScriptIframe.tsx @@ -16,21 +16,36 @@ export function TokenScriptIframe(props: { } if (event.data?.source === "TLINK_API_REQUEST") { - iframeRef.current?.contentWindow?.postMessage( - { + try { + iframeRef.current?.contentWindow?.postMessage( + { + type: "TLINK_API_RESPONSE", + source: "TLINK_API_RESPONSE", + data: { + uid: event.data.data.uid, + method: event.data.data.method, + response: await handleTlinkApiRequest( + event.data.data.method, + event.data.data.payload + ) + } + }, + "*" + ) + } catch (e) { + console.error("TLink API request failed: ", e); + iframeRef.current?.contentWindow?.postMessage({ type: "TLINK_API_RESPONSE", source: "TLINK_API_RESPONSE", data: { uid: event.data.data.uid, method: event.data.data.method, - response: handleTlinkApiRequest( - event.data.data.method, - event.data.data.payload - ) + error: e.message } - }, - "*" - ) + }, "*"); + } + + return; } if (event.data?.source === "tlink") { diff --git a/apps/extension/entrypoints/background.ts b/apps/extension/entrypoints/background.ts index 9ee94c8..53c3423 100644 --- a/apps/extension/entrypoints/background.ts +++ b/apps/extension/entrypoints/background.ts @@ -1,3 +1,4 @@ + export default defineBackground(() => { // never mark the function here async chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => { @@ -37,7 +38,7 @@ export default defineBackground(() => { } }) .catch((err) => { - console.error("error handling message", err) + console.error("error handling message", err, msg) }) return true diff --git a/apps/extension/entrypoints/options/index.html b/apps/extension/entrypoints/options/index.html new file mode 100644 index 0000000..9581e31 --- /dev/null +++ b/apps/extension/entrypoints/options/index.html @@ -0,0 +1,22 @@ + + +
+ + +