"use client" import { Button } from "@ui/components/button" import { Bookmark, Zap, CircleX, Users, Lock, ChromeIcon, TwitterIcon, } from "lucide-react" import { useEffect, useState } from "react" import { motion } from "motion/react" import Image from "next/image" import { analytics } from "@/lib/analytics" import { useIsMobile } from "@hooks/use-mobile" export function ChromeExtensionButton() { const [isExtensionInstalled, setIsExtensionInstalled] = useState(false) const [isChecking, setIsChecking] = useState(true) const [isDismissed, setIsDismissed] = useState(false) const [isMinimized, setIsMinimized] = useState(false) const isMobile = useIsMobile() useEffect(() => { const dismissed = localStorage.getItem("chrome-extension-dismissed") === "true" const minimized = localStorage.getItem("chrome-extension-minimized") === "true" setIsDismissed(dismissed) setIsMinimized(minimized) const checkExtension = () => { const message = { action: "check-extension" } const timeout = setTimeout(() => { setIsExtensionInstalled(false) setIsChecking(false) // Auto-minimize after 3 seconds if extension is not installed and not dismissed if (!dismissed && !minimized) { setTimeout(() => { setIsMinimized(true) localStorage.setItem("chrome-extension-minimized", "true") }, 3000) } }, 1000) const handleMessage = (event: MessageEvent) => { if (event.data?.action === "extension-detected") { clearTimeout(timeout) setIsExtensionInstalled(true) setIsChecking(false) window.removeEventListener("message", handleMessage) } } window.addEventListener("message", handleMessage) window.postMessage(message, "*") return () => { clearTimeout(timeout) window.removeEventListener("message", handleMessage) } } if (!dismissed) { checkExtension() } else { setIsChecking(false) } }, []) const handleInstall = () => { analytics.extensionInstallClicked() window.open( "https://chromewebstore.google.com/detail/supermemory/afpgkkipfdpeaflnpoaffkcankadgjfc", "_blank", "noopener,noreferrer", ) } const handleDismiss = () => { localStorage.setItem("chrome-extension-dismissed", "true") localStorage.removeItem("chrome-extension-minimized") setIsDismissed(true) } // Don't show if extension is installed, checking, dismissed, or on mobile if (isExtensionInstalled || isChecking || isDismissed || isMobile) { return null } return (
{!isMinimized && (

supermemory extension

your second brain for the web.

Twitter Imports

Import your twitter timeline & save tweets.

Save All Bookmarks

Instantly save any webpage to your memory.

Charge Empty Memory

Automatically capture & organize your browsing history.

4K+ users
Privacy first
)} {isMinimized && (
)}
) }