Skip to content

Commit e408c72

Browse files
committed
feat: replace home gallery with infinite menu
1 parent 2d13001 commit e408c72

6 files changed

Lines changed: 1750 additions & 25 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"clsx": "^2.1.1",
3131
"framer-motion": "^12.23.25",
3232
"github-calendar": "^2.3.4",
33+
"gl-matrix": "^3.4.4",
3334
"gray-matter": "^4.0.3",
3435
"gsap": "^3.13.0",
3536
"lucide-react": "^0.556.0",

pnpm-lock.yaml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/app/page.tsx

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { Metadata } from 'next'
22
import Link from 'next/link'
3-
import DomeGallery, { type ImageItem } from '@/components/DomeGallery'
3+
import InfiniteMenu, { type InfiniteMenuItem } from '@/components/InfiniteMenu'
44
import { siteContent } from '@/lib/site-content'
55
import { getAllPosts } from '@/lib/mdx'
66

@@ -24,13 +24,14 @@ export default function HomePage() {
2424

2525
const posts = allPosts.slice(0, 5)
2626

27-
const coverImages: ImageItem[] = allPosts
27+
const menuItems: InfiniteMenuItem[] = allPosts
2828
.map((post) => ({
29-
src: post.metadata.image ?? '',
30-
alt: post.metadata.title,
31-
href: `/blog/${post.slug}`,
29+
image: post.metadata.image ?? '',
30+
title: post.metadata.title,
31+
description: post.metadata.description ?? '',
32+
link: `/blog/${post.slug}`,
3233
}))
33-
.filter((image) => image.src.trim().length > 0)
34+
.filter((item) => item.image.trim().length > 0)
3435

3536
return (
3637
<div className="max-w-4xl mx-auto px-4 sm:px-6 py-12 sm:py-16">
@@ -115,20 +116,10 @@ export default function HomePage() {
115116
</article>
116117
))}
117118

118-
{coverImages.length > 0 && (
119+
{menuItems.length > 0 && (
119120
<div className="relative left-1/2 mt-8 w-screen -translate-x-1/2 overflow-hidden">
120-
<div className="h-[320px] px-2 sm:h-[400px] sm:px-4 md:h-[480px]">
121-
<DomeGallery
122-
images={coverImages}
123-
fit={0.42}
124-
minRadius={420}
125-
maxRadius={760}
126-
overlayBlurColor="transparent"
127-
imageBorderRadius="10px"
128-
openedImageBorderRadius="12px"
129-
openedImageWidth="min(92vw, 820px)"
130-
openedImageHeight="calc(min(92vw, 820px) * 9 / 16)"
131-
/>
121+
<div className="relative h-[420px] px-2 sm:h-[520px] sm:px-4 md:h-[600px]">
122+
<InfiniteMenu items={menuItems} scale={0.62} />
132123
</div>
133124
</div>
134125
)}

0 commit comments

Comments
 (0)