import { MESSAGE_TYPES, STORAGE_KEYS } from "../../utils/constants"; import { DOMUtils } from "../../utils/ui-components"; export async function saveMemory() { try { DOMUtils.showToast("loading"); const highlightedText = window.getSelection()?.toString() || ""; const url = window.location.href; const html = document.documentElement.outerHTML; const response = await browser.runtime.sendMessage({ action: MESSAGE_TYPES.SAVE_MEMORY, data: { html, highlightedText, url, }, actionSource: "context_menu", }); console.log("Response from enxtension:", response); if (response.success) { DOMUtils.showToast("success"); } else { DOMUtils.showToast("error"); } } catch (error) { console.error("Error saving memory:", error); DOMUtils.showToast("error"); } } export function setupGlobalKeyboardShortcut() { document.addEventListener("keydown", async (event) => { if ( (event.ctrlKey || event.metaKey) && event.shiftKey && event.key === "m" ) { event.preventDefault(); await saveMemory(); } }); } export function setupStorageListener() { window.addEventListener("message", (event) => { if (event.source !== window) { return; } const bearerToken = event.data.token; const userData = event.data.userData; if (bearerToken && userData) { if ( !( window.location.hostname === "localhost" || window.location.hostname === "supermemory.ai" || window.location.hostname === "app.supermemory.ai" ) ) { console.log( "Bearer token and user data is only allowed to be used on localhost or supermemory.ai", ); return; } chrome.storage.local.set( { [STORAGE_KEYS.BEARER_TOKEN]: bearerToken, [STORAGE_KEYS.USER_DATA]: userData, }, () => {}, ); } }); }