import { FC, useContext } from "react"; import { Box, Stack, Text } from "../../../../components"; import { ICarouselPagination } from "../Carousel.types"; import { getFormattedValue } from "../../../../utils"; import { carouselPagination, carouselPaginationStep, carouselPaginationStepClickArea, } from "../Carousel.styles"; import { CarouselContext } from "./"; const CarouselPagination: FC = ({ length, paginationType = "dots", paginationStyle, ...props }) => { const { currItem, setCurrItem } = useContext(CarouselContext); const handleClick = (index: number) => { setCurrItem(index); }; const indexer = Array.from({ length }, (v, i) => i); const renderDots = indexer.map((i: number) => { const isActive = currItem === i; const number = getFormattedValue(i, paginationType) as string; let paginationItem = ( ); if (paginationType !== "dots") { paginationItem = ( ); } return ( handleClick(i)} > {paginationItem} ); }); const allProps = { ...carouselPagination, ...props, }; return ( {renderDots} ); }; export default CarouselPagination;