"use client"; import { Plus } from "@/components/icons/platform-icons"; import { useEffect, useRef, useState } from "react"; type AppStoreInstallMenuProps = { onInstallCustomClick: () => void; onManageSourcesClick: () => void; }; export function AppStoreInstallMenu({ onInstallCustomClick, onManageSourcesClick, }: AppStoreInstallMenuProps) { const [isOpen, setIsOpen] = useState(false); const rootRef = useRef(null); useEffect(() => { if (!isOpen) return; function onDocumentPointerDown(event: MouseEvent) { const root = rootRef.current; if (!root) return; if (!root.contains(event.target as Node)) { setIsOpen(false); } } document.addEventListener("mousedown", onDocumentPointerDown); return () => { document.removeEventListener("mousedown", onDocumentPointerDown); }; }, [isOpen]); return (
{isOpen ? (
) : null}
); }