'use client';
import { Swiper, SwiperSlide } from 'swiper/react';
import Loader from './Loader';
import MaterialsContext from '@/context/MaterialsContext';
import MoreBtn from './MoreBtn';
import { Autoplay, Navigation } from 'swiper';
import { Queries } from '@/api/queries';
import VideoItem from './VideoItem';
import { useContext } from 'react';
import { useInfiniteQuery } from '@tanstack/react-query';
import { v4 } from 'uuid';
interface IProps {
isSlides?: boolean;
isExtendable?: boolean;
}
const VideoList = ({ isSlides }: IProps) => {
const { params } = useContext(MaterialsContext);
const { search, ...noSearchParams } = params;
const { data, isLoading, isFetchingNextPage, error, hasNextPage, fetchNextPage } =
useInfiniteQuery({
queryKey: ['videos', 'infinite', params ? params : ''],
queryFn: ({ pageParam = 1 }) =>
params.search !== ''
? Queries.getVideos('?' + String(new URLSearchParams({ ...params, page: pageParam })))
: Queries.getVideos(
'?' + String(new URLSearchParams({ ...noSearchParams, page: pageParam })),
),
getNextPageParam: (prevData) =>
prevData.meta.last_page > prevData.meta.current_page
? prevData.meta.current_page + 1
: null,
keepPreviousData: true,
});
if (isLoading) return
No news for the given filters
) ) : null}No news for the given filters
) ) : null}