"use client"; import { useEffect, useCallback } from "react"; import Link from "next/link"; import { usePathname, useRouter, useSearchParams } from "next/navigation"; import LoginForm from "../app/(app)/login/login-form"; const loginParam = "login"; type LoginTriggerProps = { className?: string; children: React.ReactNode; }; export function LoginTrigger({ className, children }: LoginTriggerProps) { const router = useRouter(); const pathname = usePathname(); const openModal = useCallback(() => { const params = typeof window === "undefined" ? new URLSearchParams() : new URLSearchParams(window.location.search); params.set(loginParam, "1"); const query = params.toString(); router.push(query ? `${pathname}?${query}` : pathname); }, [pathname, router]); return ( ); } export default function LoginModal() { const router = useRouter(); const pathname = usePathname(); const searchParams = useSearchParams(); const isOpen = searchParams.get(loginParam) === "1"; const closeModal = useCallback(() => { const params = new URLSearchParams(searchParams.toString()); params.delete(loginParam); const query = params.toString(); router.replace(query ? `${pathname}?${query}` : pathname); }, [pathname, router, searchParams]); useEffect(() => { if (!isOpen) { return; } const handleKeyDown = (event: KeyboardEvent) => { if (event.key === "Escape") { closeModal(); } }; const previousOverflow = document.body.style.overflow; document.body.style.overflow = "hidden"; window.addEventListener("keydown", handleKeyDown); return () => { document.body.style.overflow = previousOverflow; window.removeEventListener("keydown", handleKeyDown); }; }, [closeModal, isOpen]); if (!isOpen) { return null; } return (
Merchant access
Use your primary address and secret view key to access checkout tools.
Your primary address is the only identifier we need - no email or other
identifying information required.
Your secret view key is stored encrypted at rest and used only for payment detection.
We never require more than view-only access to keep your funds safe.
Don't have an account?{" "} Request access