damus.io

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

DamusOnMedia.tsx (5710B)


      1 import { MeshGradient2 } from "../effects/MeshGradient.2";
      2 import { Button } from "../ui/Button";
      3 import { FormattedMessage, useIntl } from "react-intl";
      4 import Link from "next/link";
      5 import { motion } from "framer-motion";
      6 import { RoundedContainerWithGradientBorder } from "../ui/RoundedContainerWithGradientBorder";
      7 import { cn } from "@/lib/utils";
      8 import Image from "next/image";
      9 
     10 const mediaCoverage = [
     11     {
     12         mediaLogo: "/brand-logos/forbes.png",
     13         date: new Date("2022-12-29"),
     14         headline: "Nostr Is The Decentralized Protocol That Might Replace Elon Musk’s Twitter",
     15         linkUrl: "https://www.forbes.com/sites/rogerhuang/2022/12/29/nostr-is-the-decentralized-protocol-that-might-replace-elon-musks-twitter/?sh=d8ea5e3442af"
     16     },
     17     {
     18         mediaLogo: "/brand-logos/forbes.png",
     19         date: new Date("2023-04-11"),
     20         headline: "How To Get Started With Nostr, Jack Dorsey’s Favorite Decentralized Social Network",
     21         linkUrl: "https://www.forbes.com/sites/digital-assets/2023/04/11/how-to-get-started-with-nostr/?sh=4a1f84f8406b"
     22     },
     23     {
     24         mediaLogo: "/brand-logos/coindesk-full.png",
     25         date: new Date("2023-04-17"),
     26         headline: "Thank Elon for Making the Use Case for Twitter Competitor Nostr",
     27         linkUrl: "https://www.coindesk.com/consensus-magazine/2023/04/17/nostr-decentralized-social-media/"
     28     },
     29     {
     30         mediaLogo: "/brand-logos/coindesk-full.png",
     31         date: new Date("2023-04-20"),
     32         headline: "The Use Case for Twitter Competitor Nostr",
     33         linkUrl: "https://www.coindesk.com/video/the-use-case-for-twitter-competitor-nostr/"
     34     },
     35     {
     36         mediaLogo: "/brand-logos/youtube.png",
     37         date: new Date("2023-05-11"),
     38         headline: "BR034 - Nostr Taking off! Catch-up with NVK ft. Fiatjaf, JB55, Pablo & Odell",
     39         linkUrl: "https://www.youtube.com/watch?v=Ul74FXtJ6Bw"
     40     },
     41     {
     42         mediaLogo: "/brand-logos/forbes.png",
     43         date: new Date("2023-05-30"),
     44         headline: "Meet @Fiatjaf, The Mysterious Nostr Creator Who Has Lured 18 Million Users And $5 Million From Jack Dorsey",
     45         linkUrl: "https://www.forbes.com/sites/digital-assets/2023/05/30/bitcoin-social-network-nostr-creator-fiatjaf-/?sh=381d061b11c0"
     46     },
     47     {
     48         mediaLogo: "/brand-logos/x.png",
     49         date: new Date("2023-07-15"),
     50         headline: "Let's enjoy it together, talk with its creators & featured heroes, and watch extra scenes and a few bloopers.",
     51         linkUrl: "https://twitter.com/filmfestbtc/status/1680155417031188481"
     52     },
     53     {
     54         mediaLogo: "/brand-logos/youtube.png",
     55         date: new Date("2023-08-16"),
     56         headline: "William Casarin | Creator of Damus App | Simply Bitcoin IRL",
     57         linkUrl: "https://www.youtube.com/watch?v=Xk3jWC-KBZ0"
     58     },
     59     {
     60         mediaLogo: "/brand-logos/youtube.png",
     61         date: new Date("2023-08-30"),
     62         headline: "Nostr and the Future of Social Media with Will Casarin (WiM359)",
     63         linkUrl: "https://www.youtube.com/watch?v=2mLUdBnJ0ls"
     64     },
     65     {
     66         mediaLogo: "/brand-logos/coinmarketcap.png",
     67         date: new Date("2023-01-01"),
     68         headline: "Twitter’s Web 3.0 Alternative Damus is Giving Away Satoshi to Incentivize User Engagement",
     69         linkUrl: "https://coinmarketcap.com/community/articles/63e37f87a1bcb9298d237f7d/"
     70     },
     71 
     72 ]
     73 
     74 export function DamusOnMedia({ className }: { className?: string }) {
     75     const intl = useIntl()
     76 
     77     return (<>
     78         <div className={cn("bg-black overflow-hidden relative min-h-screen", className)}>
     79             <div className="container mx-auto px-6 pb-32 pt-12">
     80                 <div className="flex flex-col items-center justify-center mt-32 lg:mt-16">
     81                     <div className="relative mb-32">
     82                         <motion.h2 className="text-6xl md:text-8xl text-center text-transparent bg-clip-text bg-gradient-to-r from-white from-30% to-cyan-500 to-100% font-semibold break-keep">
     83                             { intl.formatMessage({ id: "damus_on_media.headline", defaultMessage: "Damus on media" }) }
     84                         </motion.h2>
     85                     </div>
     86                     <div className="flex flex-wrap gap-x-8 gap-y-16 items-center justify-center">
     87                         {mediaCoverage.map((item, index) => (
     88                             <Link key={index} className="max-w-xs flex flex-col items-center justify-center" href={item.linkUrl} target="_blank">
     89                                 <RoundedContainerWithGradientBorder className="hover:scale-105 active:scale-95 transition w-48">
     90                                     <Image
     91                                         src={item.mediaLogo}
     92                                         className="p-6 object-contain"
     93                                         fill
     94                                         sizes="300px"
     95                                         alt=""
     96                                     />
     97                                 </RoundedContainerWithGradientBorder>
     98                                 <h3 className="text-white/70 text-center text-sm font-semibold mt-8 hover:underline">
     99                                     { intl.formatDate(item.date, { month: "short", year: "numeric" }) }
    100                                 </h3>
    101                                 <p className="text-transparent bg-clip-text bg-gradient-to-br from-white from-30% to-cyan-200 to-100% text-center text-normal mt-4 hover:underline">
    102                                     {item.headline}
    103                                 </p>
    104                             </Link>
    105                         ))}
    106                     </div>
    107                 </div>
    108             </div>
    109         </div>
    110     </>)
    111 }