"use client"; import { useSearchParams, useRouter, usePathname } from "next/navigation"; import { useEffect, useState } from "react"; import { useIdentityData } from "./IdentityProvider"; import { Modal } from "./Modal"; export function SubscriptionSuccessModal() { let searchParams = useSearchParams(); let router = useRouter(); let pathname = usePathname(); let { identity, mutate } = useIdentityData(); let [open, setOpen] = useState(false); let [loading, setLoading] = useState(true); let isUpgradeSuccess = searchParams.get("upgrade") === "success"; useEffect(() => { if (!isUpgradeSuccess) return; setOpen(true); setLoading(true); mutate().then(() => setLoading(false)); }, [isUpgradeSuccess]); function handleOpenChange(next: boolean) { setOpen(next); if (!next) { let params = new URLSearchParams(searchParams.toString()); params.delete("upgrade"); let qs = params.toString(); router.replace(qs ? `${pathname}?${qs}` : pathname, { scroll: false }); } } if (!isUpgradeSuccess && !open) return null; return ( } title="Welcome to Pro" className="w-80" > {loading ? (

Activating your subscription...

) : (

Your Pro subscription is active. Thanks for supporting Leaflet!

)} ); }