Skip to content

Commit 3625eba

Browse files
committed
Refactor FusakaHero component: replace with FusakaBanner and update HomeHero to accept dynamic images. Remove FusakaCountdown component.
1 parent c73b9c1 commit 3625eba

File tree

5 files changed

+69
-80
lines changed

5 files changed

+69
-80
lines changed

app/[locale]/page.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ import type {
1212
import { CodeExample } from "@/lib/interfaces"
1313

1414
import ActivityStats from "@/components/ActivityStats"
15+
import FusakaBanner from "@/components/Banners/FusakaBanner"
1516
import { ChevronNext } from "@/components/Chevron"
16-
import FusakaHero from "@/components/Hero/FusakaHero"
17-
// import HomeHero from "@/components/Hero/HomeHero"
17+
import HomeHero from "@/components/Hero/HomeHero"
1818
import BentoCard from "@/components/Homepage/BentoCard"
1919
import CodeExamples from "@/components/Homepage/CodeExamples"
2020
import HomepageSectionImage from "@/components/Homepage/HomepageSectionImage"
@@ -96,6 +96,7 @@ import { fetchAttestantPosts } from "@/lib/api/fetchPosts"
9696
import { fetchRSS } from "@/lib/api/fetchRSS"
9797
import { fetchTotalValueLocked } from "@/lib/api/fetchTotalValueLocked"
9898
import EventFallback from "@/public/images/events/event-placeholder.png"
99+
import RoadmapFusakaImage from "@/public/images/roadmap/roadmap-fusaka.png"
99100

100101
const BentoCardSwiper = dynamic(
101102
() => import("@/components/Homepage/BentoCardSwiper"),
@@ -436,8 +437,8 @@ const Page = async ({ params }: { params: PageParams }) => {
436437
<>
437438
<IndexPageJsonLD locale={locale} />
438439
<MainArticle className="flex w-full flex-col items-center" dir={dir}>
439-
{/* <HomeHero /> */}
440-
<FusakaHero />
440+
<FusakaBanner />
441+
<HomeHero image={RoadmapFusakaImage} alt="Fusaka Hero" />
441442
<div className="w-full space-y-32 px-4 md:mx-6 lg:space-y-48">
442443
<div className="my-20 grid w-full grid-cols-2 gap-x-4 gap-y-8 md:grid-cols-4 md:gap-x-10">
443444
{subHeroCTAs.map(
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { getLocale, getTranslations } from "next-intl/server"
2+
3+
import { LinkBox, LinkOverlay } from "@/components/ui/link-box"
4+
5+
import FusakaCountdown from "./FusakaCountdown"
6+
7+
const FusakaBanner = async () => {
8+
const locale = getLocale()
9+
const t = await getTranslations({ locale, namespace: "page-index" })
10+
11+
return (
12+
<LinkBox className="w-full bg-[#333369] p-2 text-center text-white md:p-4 md:px-8">
13+
<div className="flex flex-col items-center justify-between gap-2 md:flex-row md:gap-16">
14+
<div className="flex flex-col items-center justify-center">
15+
<p className="text-xl font-extrabold uppercase !leading-none md:text-2xl">
16+
FUSAKA
17+
</p>
18+
<p className="text-sm font-bold uppercase text-purple-100">
19+
{t("page-index-fusaka-network-upgrade")}
20+
</p>
21+
</div>
22+
<p className="text-xs text-white md:text-sm">
23+
{t("page-index-fusaka-description")}{" "}
24+
<LinkOverlay
25+
href="/roadmap/fusaka"
26+
className="text-white hover:text-purple-300"
27+
>
28+
{t("page-index-fusaka-read-more")}
29+
</LinkOverlay>
30+
.
31+
</p>
32+
<div className="flex flex-row items-center justify-center gap-4 md:mt-0 md:flex-col md:gap-0">
33+
<p className="text-xs font-bold uppercase text-gray-200">
34+
{t.rich("page-index-fusaka-going-live-in", {
35+
br: () => <br className="md:hidden" />,
36+
})}
37+
</p>
38+
<FusakaCountdown />
39+
</div>
40+
</div>
41+
</LinkBox>
42+
)
43+
}
44+
45+
export default FusakaBanner

src/components/Hero/FusakaHero/index.tsx

Lines changed: 0 additions & 70 deletions
This file was deleted.

src/components/Hero/HomeHero/index.tsx

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { getImageProps } from "next/image"
1+
import { getImageProps, type StaticImageData } from "next/image"
22
import { getLocale, getTranslations } from "next-intl/server"
33

44
import type { ClassNameProp } from "@/lib/types"
@@ -11,11 +11,24 @@ import { breakpointAsNumber } from "@/lib/utils/screen"
1111
import heroBase from "@/public/images/home/hero.png"
1212
import hero2xl from "@/public/images/home/hero-2xl.png"
1313

14-
const HomeHero = async ({ className }: ClassNameProp) => {
14+
type HomeHeroProps = ClassNameProp & {
15+
image?: StaticImageData
16+
image2xl?: StaticImageData
17+
alt?: string
18+
}
19+
20+
const HomeHero = async ({
21+
className,
22+
image,
23+
image2xl,
24+
alt: altProp,
25+
}: HomeHeroProps) => {
1526
const locale = getLocale()
1627
const t = await getTranslations({ locale, namespace: "page-index" })
1728

18-
const alt = t("page-index-hero-image-alt")
29+
const baseImage = image ?? heroBase
30+
const xlImage = image2xl ?? image ?? hero2xl
31+
const alt = altProp ?? t("page-index-hero-image-alt")
1932

2033
const common = {
2134
alt,
@@ -25,15 +38,15 @@ const HomeHero = async ({ className }: ClassNameProp) => {
2538

2639
const {
2740
props: { srcSet: srcSet2xl },
28-
} = getImageProps({ ...common, ...hero2xl, quality: 20 })
41+
} = getImageProps({ ...common, ...xlImage, quality: 20 })
2942

3043
const {
3144
props: { srcSet: srcSetMd },
32-
} = getImageProps({ ...common, ...heroBase, quality: 10 })
45+
} = getImageProps({ ...common, ...baseImage, quality: 10 })
3346

3447
const {
3548
props: { srcSet: srcSetBase, ...rest },
36-
} = getImageProps({ ...common, ...heroBase, quality: 5 })
49+
} = getImageProps({ ...common, ...baseImage, quality: 5 })
3750

3851
return (
3952
<div className={cn("w-full", className)}>

0 commit comments

Comments
 (0)