import { DOMAINS, ELEMENT_IDS, MESSAGE_TYPES, POSTHOG_EVENT_KEY, } from "../../utils/constants" import { trackEvent } from "../../utils/posthog" import { createTwitterImportButton, DOMUtils } from "../../utils/ui-components" export function initializeTwitter() { if (!DOMUtils.isOnDomain(DOMAINS.TWITTER)) { return } // Initial setup if (window.location.pathname === "/i/bookmarks") { setTimeout(() => { addTwitterImportButton() }, 2000) } else { // Remove button if not on bookmarks page if (DOMUtils.elementExists(ELEMENT_IDS.TWITTER_IMPORT_BUTTON)) { DOMUtils.removeElement(ELEMENT_IDS.TWITTER_IMPORT_BUTTON) } } } function addTwitterImportButton() { // Only show the import button on the bookmarks page if (window.location.pathname !== "/i/bookmarks") { return } if (DOMUtils.elementExists(ELEMENT_IDS.TWITTER_IMPORT_BUTTON)) { return } const button = createTwitterImportButton(async () => { try { await browser.runtime.sendMessage({ type: MESSAGE_TYPES.BATCH_IMPORT_ALL, }) await trackEvent(POSTHOG_EVENT_KEY.TWITTER_IMPORT_STARTED, { source: `${POSTHOG_EVENT_KEY.SOURCE}_content_script`, }) } catch (error) { console.error("Error starting import:", error) } }) document.body.appendChild(button) } export function updateTwitterImportUI(message: { type: string importedMessage?: string totalImported?: number }) { const importButton = document.getElementById( ELEMENT_IDS.TWITTER_IMPORT_BUTTON, ) if (!importButton) return const iconUrl = browser.runtime.getURL("/icon-16.png") if (message.type === MESSAGE_TYPES.IMPORT_UPDATE) { importButton.innerHTML = ` Save to Memory ${message.importedMessage} ` importButton.style.cursor = "default" } if (message.type === MESSAGE_TYPES.IMPORT_DONE) { importButton.innerHTML = ` Save to Memory ✓ Imported ${message.totalImported} tweets! ` setTimeout(() => { importButton.innerHTML = ` Save to Memory Import Bookmarks ` importButton.style.cursor = "pointer" }, 3000) } } export function handleTwitterNavigation() { if (!DOMUtils.isOnDomain(DOMAINS.TWITTER)) { return } if (window.location.pathname === "/i/bookmarks") { addTwitterImportButton() } else { if (DOMUtils.elementExists(ELEMENT_IDS.TWITTER_IMPORT_BUTTON)) { DOMUtils.removeElement(ELEMENT_IDS.TWITTER_IMPORT_BUTTON) } } }