damus.io

damus.io website
git clone git://jb55.com/damus.io
Log | Files | Refs | README | LICENSE

PurpleFinalCTA.tsx (3482B)


      1 import { Button } from "../ui/Button";
      2 import { useIntl } from "react-intl";
      3 import Link from "next/link";
      4 import { motion } from "framer-motion";
      5 import { cn } from "@/lib/utils";
      6 import Image from "next/image";
      7 import { ArrowUpRight, MessageCircleIcon, GitBranch, Github } from "lucide-react";
      8 import { DAMUS_APP_STORE_URL, DAMUS_MERCH_STORE_URL, DAMUS_TESTFLIGHT_URL } from "@/lib/constants";
      9 import { PurpleIcon } from "../icons/PurpleIcon";
     10 import { MeshGradient5 } from "../effects/MeshGradient.5";
     11 
     12 export function PurpleFinalCTA({ className }: { className?: string }) {
     13   const intl = useIntl()
     14 
     15   return (<>
     16     <div className={cn("bg-black overflow-hidden relative", className)}>
     17       <div className="container mx-auto px-6 pb-24 pt-24">
     18         <div className="flex flex-col items-center justify-center mt-32 lg:mt-16">
     19           <div className="relative mb-24 flex flex-col items-center justify-center">
     20             <div className="absolute pointer-events-none">
     21               <MeshGradient5 />
     22             </div>
     23             <div className="relative w-24 h-24 mb-8 rounded-xl overflow-hidden shadow-xl">
     24               <PurpleIcon />
     25             </div>
     26             <motion.h2 className="mb-1 text-4xl md:text-5xl lg:text-6xl text-center text-transparent bg-clip-text bg-gradient-to-r from-white from-5% to-[#E0A4D3] to-100% font-semibold whitespace-pre-line leading-relaxed">
     27               {intl.formatMessage({ id: "purple.final_cta.headline", defaultMessage: "Get Purple today!" })}
     28             </motion.h2>
     29             <motion.h3 className="mb-8 text-2xl md:text-3xl lg:text-4xl text-center text-transparent bg-clip-text bg-gradient-to-r from-white from-5% to-[#E0A4D3] to-100% font-semibold pb-4 whitespace-pre-line leading-relaxed">
     30               {intl.formatMessage({ id: "purple.final_cta.subheadline", defaultMessage: "for as little as 15k sats/month" })}
     31             </motion.h3>
     32             <motion.div className="text-xl text-center max-w-2xl mb-12 text-transparent bg-clip-text bg-gradient-to-br from-white from-5% to-damuspink-500 to-100% whitespace-pre-line leading-loose">
     33               {(intl.locale != "ja" || process.env.FORCE_LOAD_ALL_JA_SECTIONS) && (<>
     34                 {intl.formatMessage({ id: "purple.final_cta.text", defaultMessage: "Contribute to the future of the free internet, access exclusive features, and look cool doing it." })}
     35               </>)}
     36             </motion.div>
     37             <motion.div
     38               className="mt-10 md:mt-6 flex flex-col md:flex-row items-center md:items-center justify-center gap-y-4 gap-x-6 w-full"
     39               style={{ opacity: 0 }}
     40               animate={{ opacity: 1, transition: { delay: 1.5, duration: 1 } }}
     41             >
     42               <Link href="/purple/checkout" className="w-full md:w-auto">
     43                 <Button variant="default" className="w-full">
     44                   {intl.formatMessage({ id: "purple.final_cta.become-a-member", defaultMessage: "Become a member" })}
     45                 </Button>
     46               </Link>
     47               <Link href="damus:purple:landing" target="_blank" className="w-full md:w-auto">
     48                 <Button variant="link" className="w-full">
     49                   {intl.formatMessage({ id: "purple.final_cta.open_app", defaultMessage: "Open in Damus" })}
     50                   <ArrowUpRight className="text-damuspink-600 ml-2" />
     51                 </Button>
     52               </Link>
     53             </motion.div>
     54           </div>
     55         </div>
     56       </div>
     57     </div>
     58   </>)
     59 }