import Carousel, { CarouselProps } from 'nuka-carousel' import React, { PropsWithChildren } from 'react' import Box from '@mui/material/Box' import IconButton from '@mui/material/IconButton' import ChevronLeft from 'mdi-material-ui/ChevronLeft' import ChevronRight from 'mdi-material-ui/ChevronRight' import CircleMedium from 'mdi-material-ui/CircleMedium' import MinusThick from 'mdi-material-ui/MinusThick' import CircleSmall from 'mdi-material-ui/CircleSmall' import Minus from 'mdi-material-ui/Minus' const DARK = 'rgba(0,0,0,0.8)' const LIGHT = 'rgba(255,255,255,0.8)' type LmNukaCarouselProps = PropsWithChildren< CarouselProps & { hidePagination?: boolean paginationBelowContent?: boolean arrowsBesidePagination?: boolean hideArrows?: boolean darkArrows?: boolean darkPagination?: boolean // the property should render minus paginationCircle?: boolean } > export default function LmNukaCarousel({ hidePagination, paginationBelowContent, arrowsBesidePagination, hideArrows, darkArrows, darkPagination, paginationCircle, ...carouselProps }: LmNukaCarouselProps) { const ActiveIndicator = paginationCircle ? : const DefaultIndicator = paginationCircle ? : return ( { return ( previousSlide()} color={'inherit'} > {pagingDotsIndices.map((i) => ( goToSlide(i)} > {currentSlide === i ? ActiveIndicator : DefaultIndicator} ))} nextSlide()} color="inherit" size="small" sx={{ display: arrowsBesidePagination ? 'inline-flex' : 'none' }} > ) }} renderCenterLeftControls={({ previousDisabled, previousSlide }) => !hideArrows ? ( ) : null } renderCenterRightControls={({ nextDisabled, nextSlide }) => !hideArrows ? ( ) : null } /> ) }