import { useMemo } from 'react'; import './explore.css'; import { Swiper, SwiperSlide } from 'swiper/react'; import { SwiperOptions } from 'swiper/types'; import { Grid, Pagination, Navigation } from 'swiper/modules'; import { useIsMobile } from '@/hooks/useIsMobile'; import ExploreCard from './+components/ExploreCard'; import ROUTES_OBJECT from '@/routes/RoutesObject'; import TopSlider from './+components/TopSlider'; import { useGetAllSurveyForms } from '@/services/SurveyForm'; import appointmentsIcon from '@/assets/images/glass-icons/appointments.png'; import heartIcon from '@/assets/images/glass-icons/heart.png'; import surveyIcon from '@/assets/images/glass-icons/survey.png'; import reportIcon from '@/assets/images/glass-icons/report.png'; import discountIcon from '@/assets/images/glass-icons/discount.png'; import learnIcon from '@/assets/images/glass-icons/learn.png'; import cardIcon from '@/assets/images/glass-icons/card.png'; import supportIcon from '@/assets/images/glass-icons/support.png'; import shopIcon from '@/assets/images/glass-icons/shop.png'; const sliderProps: SwiperOptions = { slidesPerView: 1, grid: { rows: 1, fill: 'row' }, spaceBetween: 0, modules: [Grid, Pagination, Navigation], pagination: { clickable: true }, navigation: true, }; const Explore = () => { const { data: surveyFormsData } = useGetAllSurveyForms(); const isMobile = useIsMobile(); const itemsPerSlide = isMobile ? 9 : 12; const exploreCardsData = useMemo( () => [ { label: 'وفاداری', icon: , link: ROUTES_OBJECT.loyaltyCards, tooltip: 'جدید', }, { label: 'گزارش‌ها', icon: , link: ROUTES_OBJECT.report, }, { label: 'نظرسنجی', icon: , link: ROUTES_OBJECT.surveyForms, tooltip: 'جدید', counter: surveyFormsData?.incomplete_count, }, { label: 'کیف پول', icon: , link: '', isLock: true, }, { label: 'نوبت‌های من', icon: , link: ROUTES_OBJECT.appointments, tooltip: 'ویژه', isBold: true, }, { label: 'تخفیف‌کده', icon: , link: '', isLock: true, }, { label: 'فروشگاه', icon: , link: '', isLock: true, }, { label: 'آموزش', icon: , link: '', isLock: true, }, { label: 'پشتیبانی', icon: , link: ROUTES_OBJECT.support, }, ], [], ); // eslint-disable-next-line @typescript-eslint/no-explicit-any const chunkArray = (array: any[], size: number) => { const result = []; for (let i = 0; i < array.length; i += size) { result.push(array.slice(i, i + size)); } return result; }; const groupedCards = chunkArray(exploreCardsData, itemsPerSlide); return (
{groupedCards.map((slideGroup, index) => (
{slideGroup.map((card, cardIndex) => ( ))}
))}
); }; export default Explore;