import * as React from 'react'; import classNames from 'classnames'; import { Button } from '../Button'; import { Flex } from '../Flex'; import { IconChevronLeft, IconChevronRight } from '../Icon/internal'; import { View } from '../View'; import { VisuallyHidden } from '../VisuallyHidden'; import { BasePaginationItemProps } from '../types/pagination'; import { ComponentClassNames, ComponentText } from '../shared/constants'; import { classNameModifier, classNameModifierByFlag } from '../shared/utils'; export const PAGINATION_CURRENT_TEST_ID = 'current'; export const PAGINATION_ELLIPSIS_TEST_ID = 'ellipsis'; export const PaginationItem: React.FC = ({ type, page, currentPage, currentPageLabel = ComponentText.PaginationItem.currentPageLabel, isDisabled, onClick, ariaLabel, ...rest }) => { const nextClasses = classNames( ComponentClassNames.PaginationItemButton, classNameModifier(ComponentClassNames.PaginationItemButton, 'link'), classNameModifierByFlag( ComponentClassNames.PaginationItemButton, 'disabled', isDisabled ) ); const previousClasses = classNames( ComponentClassNames.PaginationItemButton, classNameModifier(ComponentClassNames.PaginationItemButton, 'link'), classNameModifierByFlag( ComponentClassNames.PaginationItemButton, 'disabled', isDisabled ) ); switch (type) { case 'page': return ( {page === currentPage ? ( {currentPageLabel}: {page} ) : ( )} ); case 'next': return ( ); case 'previous': return ( ); case 'ellipsis': return ( ); default: // No match type found } return ; }; PaginationItem.displayName = 'PaginationItem';