+
{
className="h-auto w-full object-cover"
/>
-
@@ -38,6 +41,4 @@ const ProjectThumb = ({ project, locale }: Props) => {
);
-};
-
-export default ProjectThumb;
+}
diff --git a/src/components/pages/project/projectsGridSlider.tsx b/src/components/pages/project/projectsGridSlider.tsx
index 5074ee8..e54bcf1 100644
--- a/src/components/pages/project/projectsGridSlider.tsx
+++ b/src/components/pages/project/projectsGridSlider.tsx
@@ -1,22 +1,36 @@
'use client';
+import { useEffect, useState } from 'react';
import { Swiper, SwiperSlide } from 'swiper/react';
import { FreeMode } from 'swiper/modules';
import 'swiper/css';
import 'swiper/css/free-mode';
+
import ProjectThumb from './ProjectThumb';
-import { TLocales } from '@/models/layout';
+
import { IProjectThumbResponseData } from '@/app/api/projects/data';
+import { TLocales } from '@/models/layout';
+import SliderThumbSkeleton from '@/components/layout/sliderSkeleton';
+
+interface Props {
+ projects: IProjectThumbResponseData[];
+ locale: TLocales;
+ className?: string;
+}
export default function ProjectsGridSlider({
projects,
locale,
className = '',
-}: {
- projects: IProjectThumbResponseData[];
- locale: TLocales;
- className?: string;
-}) {
+}: Props) {
+ const [hasMounted, setHasMounted] = useState(false);
+
+ useEffect(() => {
+ setHasMounted(true);
+ }, []);
+
+ if (!hasMounted) return
;
+
return (
{projects.map((project) => (
-
+
))}