damus.io

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

DamusAroundTheWorld.tsx (4938B)


      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 { Ticker, TickerImage } from "../ui/Ticker";
      8 import { ArrowUpRight, ShoppingCartIcon } from "lucide-react";
      9 import { DAMUS_MERCH_STORE_URL } from "@/lib/constants";
     10 
     11 export function DamusAroundTheWorld({ className }: { className?: string }) {
     12     const intl = useIntl()
     13 
     14     return (<>
     15         <div className={cn("bg-black overflow-hidden relative min-h-screen", className)}>
     16             <div className="container mx-auto px-6 pb-32 pt-12">
     17                 <div className="flex flex-col items-center justify-center mt-32 lg:mt-16">
     18                     <div className="relative mb-24 flex flex-col items-center justify-center">
     19                         <motion.h2 className="mb-8 text-6xl md:text-7xl lg:text-8xl text-center text-transparent bg-clip-text bg-gradient-to-r from-[#CF63F4] from-5% via-[#54F3F3] via-50% to-[#90FF7E] to-100% font-semibold">
     20                             { intl.formatMessage({ id: "damus_around_the_world.headline", defaultMessage: "Damus around the world" }) }
     21                         </motion.h2>
     22                         <motion.div className="text-white/80 text-xl text-center max-w-2xl mb-6">
     23                             {(intl.locale != "ja" || process.env.FORCE_LOAD_ALL_JA_SECTIONS) && (<>
     24                                 { intl.formatMessage({ id: "damus_around_the_world.subheadline", defaultMessage: "Damus store is available, be the cool one within your group of friends, share to the world your love for Damus. You might even appear here." }) }
     25                             </>)}
     26                         </motion.div>
     27                         <Link href={DAMUS_MERCH_STORE_URL} target="_blank">
     28                             <Button variant="default" className="w-full md:w-auto">
     29                                 <ShoppingCartIcon className="mr-2" />
     30                                 { intl.formatMessage({ id: "damus_around_the_world.visit_damus_store_now", defaultMessage: "Visit Damus store now" }) }
     31                                 <ArrowUpRight className="ml-2" />
     32                             </Button>
     33                         </Link>
     34                     </div>
     35                     <div className="flex flex-col gap-y-4 md:gap-y-4 items-stretch justify-center" aria-hidden="true">
     36                         <Ticker className="w-screen" timePeriod={20}>
     37                             <TickerImage className="w-72 h-48 md:w-96 md:h-72" src="/around-the-world-photos/1.webp" altText={ intl.formatMessage({ id: "damus_around_the_world.photo_1_alt_text", defaultMessage: "An artistic illustration of a tropical beach with a sailing boat in the shape of the Damus logo" }) }/>
     38                             <TickerImage className="w-72 h-48 md:w-96 md:h-72" src="/around-the-world-photos/2.webp" altText={ intl.formatMessage({ id: "damus_around_the_world.photo_2_alt_text", defaultMessage: "Members of the Damus team and friends at a conference booth" }) }/>
     39                             <TickerImage className="w-72 h-48 md:w-96 md:h-72" src="/around-the-world-photos/3.webp" altText={ intl.formatMessage({ id: "damus_around_the_world.photo_3_alt_text", defaultMessage: "Members of the Damus team on a video call at the conference booth" }) }/>
     40                             <TickerImage className="w-72 h-48 md:w-96 md:h-72" src="/around-the-world-photos/4.webp" altText={ intl.formatMessage({ id: "damus_around_the_world.photo_4_alt_text", defaultMessage: "A picture of the Damus cap" }) }/>
     41                         </Ticker>
     42                         <Ticker className="w-screen" timePeriod={20} reverseDirection={true}>
     43                             <TickerImage className="w-72 h-48 md:w-96 md:h-72" src="/around-the-world-photos/5.webp" altText={ intl.formatMessage({ id: "damus_around_the_world.photo_5_alt_text", defaultMessage: "Derek Ross making a presentation at a conference" }) }/>
     44                             <TickerImage className="w-72 h-48 md:w-96 md:h-72" src="/around-the-world-photos/6.webp" altText={ intl.formatMessage({ id: "damus_around_the_world.photo_6_alt_text", defaultMessage: "A man standing next to a 'Welcome to colorful Colorado' sign" }) }/>
     45                             <TickerImage className="w-72 h-48 md:w-96 md:h-72" src="/around-the-world-photos/7.webp" altText={ intl.formatMessage({ id: "damus_around_the_world.photo_7_alt_text", defaultMessage: "A man wearing Damus merch" }) }/>
     46                             <TickerImage className="w-72 h-48 md:w-96 md:h-72" src="/around-the-world-photos/4.webp" altText={ intl.formatMessage({ id: "damus_around_the_world.photo_4_alt_text", defaultMessage: "A picture of the Damus cap" }) }/>
     47                         </Ticker>
     48                     </div>
     49                 </div>
     50             </div>
     51         </div>
     52     </>)
     53 }