diff --git a/src/components/layout/sliderSkeleton/index.tsx b/src/components/layout/sliderSkeleton/index.tsx new file mode 100644 index 0000000..4962f3c --- /dev/null +++ b/src/components/layout/sliderSkeleton/index.tsx @@ -0,0 +1,21 @@ +'use client'; + +interface Props { + count?: number; +} + +export default function SliderThumbSkeleton({ count = 3 }: Props) { + return ( +
+ {Array.from({ length: count }).map((_, i) => ( +
+
+
+
+ ))} +
+ ); +} diff --git a/src/components/pages/blog/PostThumb.tsx b/src/components/pages/blog/PostThumb.tsx index 7c54d29..24baa7f 100644 --- a/src/components/pages/blog/PostThumb.tsx +++ b/src/components/pages/blog/PostThumb.tsx @@ -17,7 +17,7 @@ const PostThumb = ({ post, locale }: Props) => { return (
+// +// {posts.map((post) => ( +// +// +// +// ))} +// +//
+// ); +// } '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 PostThumb from './PostThumb'; import { IPostThumbResponseData } from '@/app/api/blog/data'; +import { TLocales } from '@/models/layout'; import { useTranslations } from 'use-intl'; import routeFactory from '@/assets/constants/routeFactory'; -import { TLocales } from '@/models/layout'; -import PostThumb from './PostThumb'; +import SliderThumbSkeleton from '@/components/layout/sliderSkeleton'; interface Props { posts: IPostThumbResponseData[]; @@ -16,8 +60,18 @@ interface Props { } export default function PostsGridViewSlider({ posts, locale }: Props) { + const [hasMounted, setHasMounted] = useState(false); const t = useTranslations(); const routes = routeFactory(t, locale); + + useEffect(() => { + setHasMounted(true); + }, []); + + if (!hasMounted) { + return ; + } + return (
{posts.map((post) => ( - + ))} diff --git a/src/components/pages/home/HomePageBlog.tsx b/src/components/pages/home/HomePageBlog.tsx index 14d5a08..ce95817 100644 --- a/src/components/pages/home/HomePageBlog.tsx +++ b/src/components/pages/home/HomePageBlog.tsx @@ -28,13 +28,16 @@ export default async function HomePageBlog({ locale, className }: Props) {

{t('com_home_blog_description')}

- + +
+ +
diff --git a/src/components/pages/home/Projects.tsx b/src/components/pages/home/Projects.tsx index f28a9dd..abf4d93 100644 --- a/src/components/pages/home/Projects.tsx +++ b/src/components/pages/home/Projects.tsx @@ -29,13 +29,15 @@ export default async function HomePageProjects({ locale }: Props) {

{t('com_home_projects_description')}

- +
+ +