import { FC, ReactNode, useCallback, useState } from 'react'; import clsx from 'clsx'; import { ChevronLeftIcon, ChevronRightIcon, } from '@gitroom/frontend/components/ui/icons'; export const SliderComponent: FC<{ className: string; list: ReactNode[]; }> = ({ className, list }) => { const [show, setShow] = useState(0); const goToPrevious = useCallback(() => { setShow((prev) => (prev > 0 ? prev - 1 : prev)); }, []); const goToNext = useCallback(() => { setShow((prev) => (prev < list.length - 1 ? prev + 1 : prev)); }, [list.length]); const canGoPrevious = show > 0; const canGoNext = show < list.length - 1; return (
{list[show]} {/* Left Arrow */} {canGoPrevious && ( )} {/* Right Arrow */} {canGoNext && ( )} {/* Pagination Dots */} {list.length > 1 && (
{list.map((_, index) => (
)}
); };