diff --git a/resources/assets/src/components/Pagination.tsx b/resources/assets/src/components/Pagination.tsx index 62208c2c..2888177c 100644 --- a/resources/assets/src/components/Pagination.tsx +++ b/resources/assets/src/components/Pagination.tsx @@ -1,4 +1,5 @@ import React from 'react' +import { t } from '@/scripts/i18n' import PaginationItem from './PaginationItem' interface Props { @@ -7,7 +8,7 @@ interface Props { onChange(page: number): void | Promise } -export const labels = { +const labels = { prev: '‹', next: '›', } @@ -21,13 +22,21 @@ const Pagination: React.FC = (props) => { return ( diff --git a/resources/assets/src/components/PaginationItem.tsx b/resources/assets/src/components/PaginationItem.tsx index ddbe3a38..fe75ec1c 100644 --- a/resources/assets/src/components/PaginationItem.tsx +++ b/resources/assets/src/components/PaginationItem.tsx @@ -3,6 +3,8 @@ import React from 'react' interface Props { disabled?: boolean active?: boolean + title?: string + className?: string onClick?(): void } @@ -14,6 +16,9 @@ const PaginationItem: React.FC = (props) => { if (props.disabled) { classes.push('disabled') } + if (props.className) { + classes.push(props.className) + } const handleClick = (event: React.MouseEvent) => { event.preventDefault() @@ -23,7 +28,7 @@ const PaginationItem: React.FC = (props) => { } return ( -
  • +
  • {props.children} diff --git a/resources/assets/tests/components/Pagination.test.tsx b/resources/assets/tests/components/Pagination.test.tsx index d35ba1eb..0de31297 100644 --- a/resources/assets/tests/components/Pagination.test.tsx +++ b/resources/assets/tests/components/Pagination.test.tsx @@ -1,13 +1,14 @@ import React from 'react' import { render, fireEvent } from '@testing-library/react' -import Pagination, { labels } from '@/components/Pagination' +import { t } from '@/scripts/i18n' +import Pagination from '@/components/Pagination' test('hide when total pages is invalid', () => { const { queryByText } = render( {}} />, ) - expect(queryByText(labels.prev)).not.toBeInTheDocument() - expect(queryByText(labels.next)).not.toBeInTheDocument() + expect(queryByText(t('vendor.datatable.prev'))).not.toBeInTheDocument() + expect(queryByText(t('vendor.datatable.next'))).not.toBeInTheDocument() }) describe('previous page', () => { @@ -16,7 +17,7 @@ describe('previous page', () => { const { getByText } = render( , ) - fireEvent.click(getByText(labels.prev)) + fireEvent.click(getByText(t('vendor.datatable.prev'))) expect(mock).toBeCalledWith(2) }) @@ -25,7 +26,7 @@ describe('previous page', () => { const { getByText } = render( , ) - fireEvent.click(getByText(labels.prev)) + fireEvent.click(getByText(t('vendor.datatable.prev'))) expect(mock).not.toBeCalled() }) }) @@ -36,7 +37,7 @@ describe('next page', () => { const { getByText } = render( , ) - fireEvent.click(getByText(labels.next)) + fireEvent.click(getByText(t('vendor.datatable.next'))) expect(mock).toBeCalledWith(4) }) @@ -45,7 +46,7 @@ describe('next page', () => { const { getByText } = render( , ) - fireEvent.click(getByText(labels.next)) + fireEvent.click(getByText(t('vendor.datatable.next'))) expect(mock).not.toBeCalled() }) })