// @ts-nocheck /* eslint-disable */ import React, { ReactNode, useEffect, useState } from 'react' import { StyledGallerySlider, StyledIconBox } from './GallerySlider.theme' import { IGallerySlider } from './GallerySlider.interface' import Icon from '@/components/atoms/Icon/Icon.component' import Spacer from '@/components/atoms/Spacer' interface IImagesStyles { imageElement: ReactNode width: string paddingRight: string | undefined } const GallerySlider = ({ imagesElements }: IGallerySlider) => { const [counter, setCounter] = useState(0) const [images, setImages] = useState([]) const [hasLeft, setHasLeft] = useState(false) const [hasRight, setHasRight] = useState(true) useEffect(() => { const finalImages: IImagesStyles[] = [] imagesElements.map((image, index) => { finalImages.push({ imageElement: image, width: getFinalWidth(index), paddingRight: getFinalVisible(index) }) }) setImages(finalImages) }, [counter]) const onClickRight = () => { if (counter + 1 === images.length - 1) { setHasRight(false) return } if (counter + 1 < images.length) { setCounter(prev => prev + 1) setHasLeft(true) } if (counter + 3 === images.length) setHasRight(false) } const onClickBack = () => { setHasRight(true) if (counter - 1 === 0 || counter === 0) { setHasLeft(false) } if (counter - 1 >= 0) { setCounter(prev => prev - 1) } } function getFinalWidth(index: number) { if (index === counter) return '85%' if (index === counter + 1) return '15%' return '0%' } function getFinalVisible(index: number) { if (index === counter) return '1rem' } return (
{images && images.map((imageElement, index) => (
{imageElement && imageElement?.imageElement}
))}
) } export default GallerySlider