import * as React from 'react'; import { useState } from 'react'; import './Carousel.scss'; import { ImageViewer } from '../ImageViewer/ImageViewer'; export interface ICarouselProps { listItems: any; per_page: number } export const Carousel = ({ listItems, per_page }: ICarouselProps) => { const [obj, setObj] = useState({ id: '', src: '' }); const firstElement = (listItems && listItems.length > 0 && listItems[0]) || null; const [current_page, setCurrentPage] = useState(0); let cnt = 0; React.useEffect(() => { setObj(firstElement); }, []); function prevPage() { if (current_page > 0) { setCurrentPage((prestate) => prestate - 1); } } function nextPage() { if (current_page < numPages() - 1) { setCurrentPage((prestate) => prestate + 1); } } function numPages() { return Math.ceil(listItems.length / per_page); } const getDynamicClass = (index: any) => { if (current_page === index) { return 'img-fade img-current'; } return 'img-fade img-slide-hide' } const List = ({ item, index }: any) => { return ( (
setObj(item)}>
) ) } const splitEvery = (array: any, length: any) => array.reduce( (result: any, item: any, index: any) => { if (index % length === 0) result.push([]) result[Math.floor(index / length)].push(item) return result }, [] ) return ( <>
{obj && <>
{ console.log('df') }} />
}
{ prevPage() }}>
{splitEvery(listItems, 3).map((items: any, inx: any) => { cnt++ return (
{ items.map((item: any, index: any) => { return }) }
) })}
{ nextPage() }}>
); };