Recap.tsx (3488B)
1 import { Onest } from 'next/font/google' 2 import { FormattedMessage, useIntl } from "react-intl"; 3 import { motion } from "framer-motion"; 4 import { RoundedContainerWithGradientBorder } from "@/components/ui/RoundedContainerWithGradientBorder"; 5 import { cn } from "@/lib/utils"; 6 import { Lock, User, Layers, Bell, FileText, LogOut, Settings2, Gauge, Globe, Sparkles } from "lucide-react"; 7 import { MeshGradient3 } from "@/components/effects/MeshGradient.3"; 8 import { Item, ItemSection } from './ItemSection'; 9 import Link from 'next/link'; 10 import { Button } from '@/components/ui/Button'; 11 12 const onest = Onest({ subsets: ['latin'] }) 13 14 export function Recap({ className }: { className?: string }) { 15 const intl = useIntl() 16 17 const items: Item[] = [ 18 { 19 icon: <Settings2 className="h-12 w-12 text-white opacity-80"/>, 20 headline: intl.formatMessage({ id: "notedeck.feature.customization.name", defaultMessage: "Customization" }), 21 description: intl.formatMessage({ id: "notedeck.feature.customization.description", defaultMessage: "Custom feeds, ability to switch between your accounts, follow hashtags in separate columns, the list goes on. Nostr prioritizes user choice and Notedeck takes this to the next level" }), 22 }, 23 { 24 icon: <Gauge className="h-12 w-12 text-white opacity-80"/>, 25 headline: intl.formatMessage({ id: "notedeck.feature.speed.name", defaultMessage: "Speed" }), 26 description: intl.formatMessage({ id: "notedeck.feature.speed.description", defaultMessage: "The fastest nostr client. Built from the ground up with an ultra-fast database made exclusively for nostr, leveraging several state-of-the-art performance techniques not available on web clients" }), 27 }, 28 { 29 icon: <Globe className="h-12 w-12 text-white opacity-80"/>, 30 headline: intl.formatMessage({ id: "notedeck.feature.availability.name", defaultMessage: "Available Everywhere" }), 31 description: intl.formatMessage({ id: "notedeck.feature.availability.description", defaultMessage: "We're no longer tied to Apple restrictions... Notedeck will eventually be available on all platforms, for everyone and with the ability to zap without approval. The sky's the limit!" }), 32 }, 33 ] 34 35 return (<> 36 <ItemSection 37 heading={intl.formatMessage({ id: "notedeck.recap.headline", defaultMessage: "Let’s recap" })} 38 subHeading={intl.formatMessage({ id: "notedeck.recap.description", defaultMessage: "Damus Notedeck is a lightning fast native app that allows you to explore the nostr social network in a completely new way, with several power features. **Try it today** with our [Purple](/purple) subscription" })} 39 items={items} 40 customChild={ 41 <div className="flex flex-col md:flex-row gap-x-8 gap-y-4 mx-auto my-32 w-full justify-center"> 42 {(intl.locale != "ja" || 43 process.env.FORCE_LOAD_ALL_JA_SECTIONS) && ( 44 <Link 45 href="/notedeck/install" 46 target="_blank" 47 > 48 <Button variant="accent" className="w-full md:w-auto text-xl"> 49 <Sparkles className="mr-2" /> 50 {intl.formatMessage({ 51 id: "notedeck.recap.try_it_today", 52 defaultMessage: "Install now", 53 })} 54 </Button> 55 </Link> 56 )} 57 </div> 58 } 59 /> 60 61 </>) 62 }