Skip to content

Commit fd1bbea

Browse files
committed
feat(home): add image gallery support to featured projects
- Import ImageGalleryModal component - Pass project id to ProjectCard in featured section - Render gallery modals at page level for featured projects - Maintain featured projects ordering by order field - Show first 3 featured projects as configured
1 parent 8f4df40 commit fd1bbea

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

src/pages/index.astro

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { getCollection } from 'astro:content';
33
import BaseLayout from '@layouts/BaseLayout.astro';
44
import BlogCard from '@components/BlogCard.astro';
55
import ProjectCard from '@components/ProjectCard.astro';
6+
import ImageGalleryModal from '@components/ImageGalleryModal.astro';
67
import SocialIcon from '@components/SocialIcon.astro';
78
import { SITE, EDUCATION, TECH_STACK, STATS, SOCIAL_LINKS } from '@utils/constants';
89
import { readingTime } from '@utils/helpers';
@@ -222,7 +223,7 @@ const recentPosts = allPosts
222223

223224
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8">
224225
{featuredProjects.map((project) => (
225-
<ProjectCard {...project.data} />
226+
<ProjectCard {...project.data} id={project.data.id} />
226227
))}
227228
</div>
228229

@@ -298,4 +299,7 @@ const recentPosts = allPosts
298299
</div>
299300
</div>
300301
</section>
302+
303+
<!-- Image Gallery Modals (rendered at page level) -->
304+
<ImageGalleryModal projects={featuredProjects.map(p => ({ id: p.data.id, title: p.data.title, images: p.data.images }))} />
301305
</BaseLayout>

src/pages/vi/index.astro

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { getCollection } from 'astro:content';
33
import BaseLayout from '@layouts/BaseLayout.astro';
44
import BlogCard from '@components/BlogCard.astro';
55
import ProjectCard from '@components/ProjectCard.astro';
6+
import ImageGalleryModal from '@components/ImageGalleryModal.astro';
67
import SocialIcon from '@components/SocialIcon.astro';
78
import { SITE, EDUCATION, TECH_STACK, STATS, SOCIAL_LINKS } from '@utils/constants';
89
import { readingTime } from '@utils/helpers';
@@ -222,7 +223,7 @@ const recentPosts = allPosts
222223

223224
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8">
224225
{featuredProjects.map((project) => (
225-
<ProjectCard {...project.data} />
226+
<ProjectCard {...project.data} id={project.data.id} />
226227
))}
227228
</div>
228229

@@ -298,4 +299,7 @@ const recentPosts = allPosts
298299
</div>
299300
</div>
300301
</section>
302+
303+
<!-- Image Gallery Modals (rendered at page level) -->
304+
<ImageGalleryModal projects={featuredProjects.map(p => ({ id: p.data.id, title: p.data.title, images: p.data.images }))} />
301305
</BaseLayout>

0 commit comments

Comments
 (0)