/** * Memory Popup Utilities * Standardized popup positioning and styling for memory display across platforms */ export interface MemoryPopupConfig { memoriesData: string; onClose: () => void; onRemove?: () => void; } export function createMemoryPopup(config: MemoryPopupConfig): HTMLElement { const popup = document.createElement("div"); popup.style.cssText = ` position: fixed; bottom: 80px; left: 50%; transform: translateX(-50%); background: #1a1a1a; color: white; padding: 0; border-radius: 12px; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif; max-width: 500px; max-height: 400px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4); z-index: 999999; display: none; overflow: hidden; `; const header = document.createElement("div"); header.style.cssText = ` display: flex; justify-content: space-between; align-items: center; padding: 8px; border-bottom: 1px solid #333; opacity: 0.8; `; header.innerHTML = ` INCLUDED MEMORIES
${config.onRemove ? '' : ""}
`; const content = document.createElement("div"); content.style.cssText = ` padding: 8px; max-height: 300px; overflow-y: auto; line-height: 1.4; `; content.textContent = config.memoriesData; const closeBtn = header.querySelector("#close-popup-btn"); closeBtn?.addEventListener("click", config.onClose); const removeBtn = header.querySelector("#remove-memories-btn"); if (removeBtn && config.onRemove) { removeBtn.addEventListener("click", config.onRemove); } popup.appendChild(header); popup.appendChild(content); return popup; } export function showMemoryPopup(popup: HTMLElement): void { popup.style.display = "block"; setTimeout(() => { if (popup.style.display === "block") { hideMemoryPopup(popup); } }, 10000); } export function hideMemoryPopup(popup: HTMLElement): void { popup.style.display = "none"; } export function toggleMemoryPopup(popup: HTMLElement): void { if (popup.style.display === "none" || popup.style.display === "") { showMemoryPopup(popup); } else { hideMemoryPopup(popup); } }