diff --git a/src/app/page.tsx b/src/app/page.tsx index d0239e496..828b88743 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -13,10 +13,18 @@ export default function LandingPage() { visible: true, message: 'Peanut', }, - cta: { - label: 'TRY NOW', - href: '/pay', - }, + ctas: [ + { + label: 'TRY NOW', + href: 'https://peanut.me', + primary: true, + }, + { + label: 'LEGACY', + href: '/pay', + primary: false, + }, + ], } const story = { marquee: { @@ -154,14 +162,7 @@ export default function LandingPage() { return ( - - - - - -
- -
+
) } diff --git a/src/assets/icons/gitbook-black.png b/src/assets/icons/gitbook-black.png new file mode 100644 index 000000000..416a92d1d Binary files /dev/null and b/src/assets/icons/gitbook-black.png differ diff --git a/src/assets/icons/index.ts b/src/assets/icons/index.ts index b0fd810dc..f58f2fcda 100644 --- a/src/assets/icons/index.ts +++ b/src/assets/icons/index.ts @@ -8,6 +8,7 @@ export { default as DROPDOWN_ICON } from './dropdown.svg' export { default as ETHEREUM_ICON } from './ethereum.svg' export { default as GAS_ICON } from './gas.svg' export { default as GITBOOK_ICON } from './gitbook.png' +export { default as GITBOOK_BLACK_ICON } from './gitbook-black.png' export { default as GITHUB_INVERTED_ICON } from './github-inverted.png' export { default as GITHUB_ICON } from './github.png' export { default as MAIL_ICON } from './mail-icon.svg' diff --git a/src/components/Global/Layout/index.tsx b/src/components/Global/Layout/index.tsx index e2c31df9c..5f687200b 100644 --- a/src/components/Global/Layout/index.tsx +++ b/src/components/Global/Layout/index.tsx @@ -1,8 +1,7 @@ 'use client' -import { Banner } from '@/components/Global/Banner' import Footer from '@/components/Global/Footer' -import Header from '@/components/Global/Header' +import { MigrationBanner } from '@/components/Global/MigrationBanner' import { useFooterVisibility } from '@/context/footerVisibility' import { Widget } from '@typeform/embed-react' import { Roboto_Flex } from 'next/font/google' @@ -41,10 +40,9 @@ const Layout = ({ children, className }: LayoutProps) => { font-family: ${roboto.style.fontFamily}; } `} -
+
-
- +
{
-
+ { diff --git a/src/components/Global/MigrationBanner/index.tsx b/src/components/Global/MigrationBanner/index.tsx new file mode 100644 index 000000000..52c666280 --- /dev/null +++ b/src/components/Global/MigrationBanner/index.tsx @@ -0,0 +1,22 @@ +'use client' +import React from 'react' +import { MarqueeWrapper } from '../MarqueeWrapper' +import { PEANUTMAN_CHEERING } from '@/assets' +import handThumbsUp from '@/assets/illustrations/hand-thumbs-up.svg' + +interface MigrationBannerProps { + className?: string +} + +export function MigrationBanner({ className = '' }: MigrationBannerProps) { + return ( + + +
+ Migration Icon + WE'VE MIGRATED TO PEANUT.ME +
+
+
+ ) +} diff --git a/src/components/Global/TryNow/index.tsx b/src/components/Global/TryNow/index.tsx index 3a7afe2f5..b5731bb93 100644 --- a/src/components/Global/TryNow/index.tsx +++ b/src/components/Global/TryNow/index.tsx @@ -1,15 +1,24 @@ -import { ARROW_UP_CIRCLE, CASHOUT_ICON, Eyes, STAR_OUTLINE_ICON } from '@/assets' +import { + ARROW_UP_CIRCLE, + CASHOUT_ICON, + Eyes, + STAR_OUTLINE_ICON, + SMILEY_ICON, + TRIANGLE_ICON, + GITBOOK_BLACK_ICON, +} from '@/assets' import { Card } from '@chakra-ui/react' -import Image from 'next/image' +import Image, { StaticImageData } from 'next/image' import Link from 'next/link' import { twMerge } from 'tailwind-merge' interface ITryNowCard { title: string description: string - icon: string + icon: StaticImageData | string href: string isExternal?: boolean + needsIconAdjustment?: boolean } const cards: ITryNowCard[] = [ @@ -32,6 +41,33 @@ const cards: ITryNowCard[] = [ icon: ARROW_UP_CIRCLE, href: '/send', }, + { + title: 'Raffle (legacy)', + description: 'Create crypto raffles and distribute tokens to winners', + icon: STAR_OUTLINE_ICON, + href: '/raffle/create', + }, + { + title: 'Batch Send (legacy)', + description: 'Send tokens to multiple recipients at once', + icon: SMILEY_ICON, + href: '/batch/create', + }, + { + title: 'Refund (legacy)', + description: 'Refund unclaimed peanut links back to sender', + icon: TRIANGLE_ICON, + href: '/refund', + needsIconAdjustment: true, + }, + { + title: 'Docs (legacy)', + description: 'Learn about Peanut Protocol and its features', + icon: GITBOOK_BLACK_ICON, + href: 'https://docs.peanut.to/', + isExternal: true, + needsIconAdjustment: true, + }, ] const TryNow = () => { @@ -59,10 +95,15 @@ const TryNow = () => {
- {card.title} + {card.title}
{ index === 0 ? 'p-4' : 'p-2' )} > - {card.title} + {card.title}

{card.title}

@@ -84,17 +129,6 @@ const TryNow = () => { ))}
-
- eyes - - What is Peanut Protocol? - -
) } diff --git a/src/components/LandingPage/hero.tsx b/src/components/LandingPage/hero.tsx index dd24a1137..47f5b9d79 100644 --- a/src/components/LandingPage/hero.tsx +++ b/src/components/LandingPage/hero.tsx @@ -2,7 +2,6 @@ import { AboutPeanut, ButterySmoothGlobalMoney, HandThumbsUp, PeanutGuyGIF, Spar import { Stack } from '@chakra-ui/react' import { motion } from 'framer-motion' import { useEffect, useState } from 'react' -import { MarqueeComp } from '../Global/MarqueeWrapper' import { CloudImages, HeroImages } from './imageAssets' type HeroProps = { @@ -11,14 +10,15 @@ type HeroProps = { visible: boolean message?: string } - cta?: { + ctas?: Array<{ label: string href: string - } + primary: boolean + }> buttonVisible?: boolean } -export function Hero({ heading, marquee = { visible: false }, cta, buttonVisible }: HeroProps) { +export function Hero({ heading, marquee = { visible: false }, ctas, buttonVisible }: HeroProps) { const [duration, setDuration] = useState(10) const [screenWidth, setScreenWidth] = useState(typeof window !== 'undefined' ? window.innerWidth : 1200) // Added typeof check for SSR @@ -65,45 +65,52 @@ export function Hero({ heading, marquee = { visible: false }, cta, buttonVisible
-
- {marquee && ( - - )} -
- - {cta?.href && cta?.label && ( - - Sparkle + {ctas && ctas.length > 0 && ( +
+ {ctas.map((cta, index) => ( + + {cta.primary && ( + Sparkle + )} - - {cta.label} - - + + {cta.label} + + + ))} +
)}
) diff --git a/src/components/Welcome/welcomeSDK.tsx b/src/components/Welcome/welcomeSDK.tsx index c5936b0db..6a6306b66 100644 --- a/src/components/Welcome/welcomeSDK.tsx +++ b/src/components/Welcome/welcomeSDK.tsx @@ -24,7 +24,6 @@ import { SBF_PERSON, SmileStars, PEANUTMAN_HAPPY, - REDPACKET_LOTTIE, TEAL_MOCKUP_1, DROPDOWN_ICON, } from '@/assets' @@ -178,7 +177,7 @@ const testimonials = [ const defaultLottieOptions = { loop: true, autoplay: true, - animationData: REDPACKET_LOTTIE, + animationData: '/lottie/redpacket-lottie.json', rendererSettings: { preserveAspectRatio: 'xMidYMid slice', }, @@ -333,7 +332,7 @@ export function WelcomeSDK() { target="_blank" >
- +