diff --git a/app/[locale]/team/page.tsx b/app/[locale]/team/page.tsx
index a82b7865..4e1a29fc 100644
--- a/app/[locale]/team/page.tsx
+++ b/app/[locale]/team/page.tsx
@@ -1,14 +1,11 @@
-'use client';
-
-import { useTranslations } from 'next-intl';
import { getTranslations } from 'next-intl/server';
import { Metadata } from 'next';
import JsonLd from '@/components/JsonLd';
import { getBreadcrumbSchema, SITE_URL } from '@/lib/schema';
import { Section, Container, Heading, Badge, Button } from '@/components/ui';
import Image from 'next/image';
-import Lightbox from '@/components/Lightbox';
import Reveal from '@/components/Reveal';
+import Gallery from '@/components/team/Gallery';
interface TeamPageProps {
params: {
@@ -42,19 +39,8 @@ export async function generateMetadata({ params: { locale } }: TeamPageProps): P
};
}
-export default function TeamPage() {
- const t = useTranslations('Team');
-
- const [lightboxOpen, setLightboxOpen] = React.useState(false);
- const [lightboxIndex, setLightboxIndex] = React.useState(0);
-
- const teamGalleryImages = [
- '/uploads/2024/12/DSC07539-Large-600x400.webp',
- '/uploads/2024/12/DSC07460-Large-600x400.webp',
- '/uploads/2024/12/DSC07469-Large-600x400.webp',
- '/uploads/2024/12/DSC07433-Large-600x400.webp',
- '/uploads/2024/12/DSC07387-Large-600x400.webp'
- ];
+export default async function TeamPage({ params: { locale } }: TeamPageProps) {
+ const t = await getTranslations({ locale, namespace: 'Team' });
return (
@@ -287,37 +273,7 @@ export default function TeamPage() {
- {/* Gallery Section - Premium Treatment */}
-
-
-
- {t('gallery.title')}
-
-
- {teamGalleryImages.map((src, idx) => (
-
- ))}
-
-
-
- setLightboxOpen(false)}
- />
-
+
);
}
diff --git a/components/home/Hero.tsx b/components/home/Hero.tsx
index a6d3cfb4..efe8e3d9 100644
--- a/components/home/Hero.tsx
+++ b/components/home/Hero.tsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useState, useEffect } from 'react';
import { useTranslations } from 'next-intl';
import { Container, Button, Section, Heading } from '@/components/ui';
import Scribble from '@/components/Scribble';
@@ -7,38 +7,46 @@ import HeroIllustration from './HeroIllustration';
export default function Hero() {
const t = useTranslations('Home.hero');
+ const [mounted, setMounted] = useState(false);
+
+ useEffect(() => {
+ setMounted(true);
+ }, []);
+
return (
-
+
+
+
-
-
+
+
{t.rich('title', {
green: (chunks) => (
- {chunks}
-
+ {chunks}
+
)
})}
-
+
{t('subtitle')}
-
-
+
diff --git a/components/team/Gallery.tsx b/components/team/Gallery.tsx
new file mode 100644
index 00000000..83e9b9b1
--- /dev/null
+++ b/components/team/Gallery.tsx
@@ -0,0 +1,55 @@
+'use client';
+
+import { useTranslations } from 'next-intl';
+import { useState } from 'react';
+import Image from 'next/image';
+import Lightbox from '@/components/Lightbox';
+import { Section, Container, Heading } from '@/components/ui';
+
+export default function Gallery() {
+ const t = useTranslations('Team');
+
+ const [lightboxOpen, setLightboxOpen] = useState(false);
+ const [lightboxIndex, setLightboxIndex] = useState(0);
+
+ const teamGalleryImages = [
+ '/uploads/2024/12/DSC07539-Large-600x400.webp',
+ '/uploads/2024/12/DSC07460-Large-600x400.webp',
+ '/uploads/2024/12/DSC07469-Large-600x400.webp',
+ '/uploads/2024/12/DSC07433-Large-600x400.webp',
+ '/uploads/2024/12/DSC07387-Large-600x400.webp'
+ ];
+
+ return (
+
+
+
+ {t('gallery.title')}
+
+
+ {teamGalleryImages.map((src, idx) => (
+
{
+ setLightboxIndex(idx);
+ setLightboxOpen(true);
+ }}
+ className="relative aspect-[3/4] rounded-2xl md:rounded-[32px] overflow-hidden group shadow-2xl cursor-pointer"
+ >
+
+
+
+
+ ))}
+
+
+
+ setLightboxOpen(false)}
+ />
+
+ );
+}
\ No newline at end of file