// 'use client'; // import { Swiper, SwiperSlide } from 'swiper/react'; // import { FreeMode } from 'swiper/modules'; // import 'swiper/css'; // import 'swiper/css/free-mode'; // import { IPostThumbResponseData } from '@/app/api/blog/data'; // import { useTranslations } from 'use-intl'; // import routeFactory from '@/assets/constants/routeFactory'; // import { TLocales } from '@/models/layout'; // import PostThumb from './PostThumb'; // interface Props { // posts: IPostThumbResponseData[]; // locale: TLocales; // } // export default function PostsGridViewSlider({ posts, locale }: Props) { // const t = useTranslations(); // const routes = routeFactory(t, locale); // 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 SliderThumbSkeleton from '@/components/layout/sliderSkeleton'; interface Props { posts: IPostThumbResponseData[]; locale: TLocales; } 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) => ( ))}
); }