import React, { type ReactNode } from 'react';
import { usePaginationContext } from './pagination-context';
import { PaginationControl, type PaginationControlProps } from './pagination-control';
import { PaginationDot } from './pagination-dot';
export interface PaginationItemsProps {
/** Dots icon component */
dotsIcon?: ReactNode;
variant?: PaginationControlProps['variant'];
}
export function PaginationItems({ dotsIcon, variant }: PaginationItemsProps) {
const ctx = usePaginationContext();
const items = ctx.range.map((page, index) => {
if (page === 'dots') {
return (
);
}
return (
ctx.onChange(page)}
disabled={ctx.disabled}
variant={variant}
{...ctx.getItemProps?.(page)}
>
{page}
);
});
return <>{items}>;
}
PaginationItems.displayName = 'PaginationItems';