diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx index c4f164a..edddc97 100644 --- a/apps/web/app/layout.tsx +++ b/apps/web/app/layout.tsx @@ -2,6 +2,7 @@ import type { Metadata } from "next"; import { Archivo, Inter, Poppins } from "next/font/google"; import { GoogleTagManager, GoogleAnalytics } from "@next/third-parties/google"; import Script from "next/script"; +import { DepositPopup } from "@/components/deposit-popup"; import "./globals.css"; const archivo = Archivo({ @@ -89,6 +90,7 @@ export default function RootLayout({ /> {children} + ); diff --git a/apps/web/app/support/how-to-deposit-with-debit-cards/page.tsx b/apps/web/app/support/how-to-deposit-with-debit-cards/page.tsx index 40db13f..a242747 100644 --- a/apps/web/app/support/how-to-deposit-with-debit-cards/page.tsx +++ b/apps/web/app/support/how-to-deposit-with-debit-cards/page.tsx @@ -13,6 +13,7 @@ import { } from "lucide-react"; import { Button, Card, CardContent } from "@crimsonfx/ui"; import { OnboardingStepsSection } from "@/components/sections/onboarding-steps-section"; +import { withBasePath } from "@/lib/base-path"; import { DemoCTASection } from "@/components/sections/demo-cta-section"; import { ScrollReveal } from "@/components/ui/scroll-reveal"; @@ -128,7 +129,7 @@ export default function CardDepositSupportPage() { className="relative w-full aspect-[5/4] rounded-[40px] overflow-hidden mb-20 shadow-2xl shadow-black/40 border border-white/5 bg-muted/5" > How to Deposit { + setMounted(true); + + // Slight delay so the entrance animation plays after first paint. + const showTimer = setTimeout(() => setVisible(true), 350); + + const onKey = (e: KeyboardEvent) => { + if (e.key === "Escape") dismiss(); + }; + window.addEventListener("keydown", onKey); + + return () => { + clearTimeout(showTimer); + window.removeEventListener("keydown", onKey); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + function dismiss() { + setLeaving(true); + // Allow the exit transition to finish before unmounting. + setTimeout(() => setMounted(false), 350); + } + + if (!mounted) return null; + + const open = visible && !leaving; + + return ( +
+ {/* Backdrop */} +
+ + {/* Card */} +
e.stopPropagation()} + className={`relative z-10 w-full max-w-4xl overflow-hidden rounded-2xl bg-card shadow-2xl shadow-black/30 transition-all duration-300 ease-out ${ + open ? "translate-y-0 scale-100 opacity-100" : "translate-y-4 scale-95 opacity-0" + }`} + > + {/* Brand accent bar */} +
+ + {/* Close (cancel) symbol */} + + +
+ {/* Left: copy */} +
+ + + + + + Now Live + + +

+ Deposit Using Cards +

+ +

+ We're proud to announce our new card deposits payment processor + is officially live. Fund your account instantly with{" "} + debit,{" "} + credit or{" "} + Apple Pay. +

+ + + Learn More + + + + +
+ + {/* Right: image */} +
+ Deposit instantly using debit, credit cards or Apple Pay +
+
+
+
+ ); +} diff --git a/apps/web/public/images/Debit-Cards-2.png b/apps/web/public/images/Debit-Cards-2.png new file mode 100644 index 0000000..11dfc1d Binary files /dev/null and b/apps/web/public/images/Debit-Cards-2.png differ diff --git a/apps/web/public/images/Debit-Cards.png b/apps/web/public/images/Debit-Cards.png index 11dfc1d..643fbd1 100644 Binary files a/apps/web/public/images/Debit-Cards.png and b/apps/web/public/images/Debit-Cards.png differ diff --git a/apps/web/public/images/deposit-cards.png b/apps/web/public/images/deposit-cards.png new file mode 100644 index 0000000..a85fbc3 Binary files /dev/null and b/apps/web/public/images/deposit-cards.png differ