import React, { useRef, useState, useMemo } from 'react' import { Slider } from '../../src' import styled from 'styled-components' import { getRndHex } from '../getRndHex' interface ScrollSnapSliderRef { scrollToSlide: Function sliderRef: React.RefObject } interface StyledPaginationBulletProps { isActive: boolean } const StyledPagination = styled.div` list-style: none; width: 50%; padding: 0 0 20 0; margin: 0 auto; text-align: center; z-index: 10; ` const StyledPaginationBullet = styled.span` display: inline-block; width: 12px; height: 12px; background-color: ${(props) => (props.isActive ? '#000' : '#b6b6b6')}; cursor: pointer; margin: 0 7px; border-radius: 50%; transition-property: transform, opacity, background-color; transition-duration: 0.3s; ` export const renderFullWidthSlide = (index: number) => { return (

Slide {index}

) } export const SliderWithScrollToIndex: React.FC = (props) => { const gallerySliderRef = useRef(null) const [slideIndex, setIndex] = useState(0) const changeGalleryIndex = (index: number) => { gallerySliderRef.current?.scrollToSlide(index) setIndex(index) } const onGallerySlidesVisibilityChange = (index: number) => { setIndex(index) } const items = useMemo( () => props.items.map((item, index) => renderFullWidthSlide(index)), [] ) return (
{items} {props.items.map((item, index) => { return ( changeGalleryIndex(index)} isActive={slideIndex === index} > ) })}
) }