Skip to content

Commit eebe574

Browse files
fix: remove page change check that would cause infinite renders (#1968)
1 parent 021f11f commit eebe574

File tree

3 files changed

+5
-58
lines changed

3 files changed

+5
-58
lines changed

.changeset/five-cooks-rescue.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@razorpay/blade": patch
3+
---
4+
5+
fix: remove page change check that would cause infinite renders

packages/blade/src/components/Table/TablePagination.web.tsx

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import { Button } from '~components/Button';
2323
import { makeAccessible } from '~utils/makeAccessible';
2424
import { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';
2525
import { useTheme } from '~components/BladeProvider';
26-
import { throwBladeError } from '~utils/logger';
2726

2827
const pageSizeOptions: NonNullable<TablePaginationProps['defaultPageSize']>[] = [10, 25, 50];
2928

@@ -212,19 +211,6 @@ const _TablePagination = ({
212211
}
213212
}, [controlledCurrentPage, currentPage, handlePageChange, onPageChange]);
214213

215-
if (currentPage > totalPages - 1) {
216-
if (!isUndefined(controlledCurrentPage)) {
217-
if (__DEV__) {
218-
throwBladeError({
219-
moduleName: 'TablePagination',
220-
message: `Value of 'currentPage' prop cannot be greater than the total pages`,
221-
});
222-
}
223-
} else {
224-
handlePageChange(totalPages - 1);
225-
}
226-
}
227-
228214
const handlePageSizeChange = (pageSize: number): void => {
229215
onPageSizeChange?.({ pageSize });
230216
setPaginationRowSize(pageSize);

packages/blade/src/components/Table/__tests__/Table.web.test.tsx

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -806,48 +806,4 @@ describe('<Table />', () => {
806806
fireEvent.click(goBack5PagesButton);
807807
expect(onPageChange).toHaveBeenLastCalledWith({ page: 0 });
808808
}, 10000);
809-
810-
it('should throw error if currentPage is greater than total pages', () => {
811-
const mockConsoleError = jest.spyOn(console, 'error').mockImplementation();
812-
expect(() =>
813-
renderWithTheme(
814-
<Table
815-
data={{
816-
nodes: [...nodes, ...nodes],
817-
}}
818-
pagination={<TablePagination defaultPageSize={10} currentPage={50} />}
819-
>
820-
{(tableData) => (
821-
<>
822-
<TableHeader>
823-
<TableHeaderRow>
824-
<TableHeaderCell>Payment ID</TableHeaderCell>
825-
<TableHeaderCell>Amount</TableHeaderCell>
826-
<TableHeaderCell>Status</TableHeaderCell>
827-
<TableHeaderCell>Type</TableHeaderCell>
828-
<TableHeaderCell>Method</TableHeaderCell>
829-
<TableHeaderCell>Name</TableHeaderCell>
830-
</TableHeaderRow>
831-
</TableHeader>
832-
<TableBody>
833-
{tableData.map((tableItem, index) => (
834-
<TableRow item={tableItem} key={index}>
835-
<TableCell>{tableItem.paymentId}</TableCell>
836-
<TableCell>{tableItem.amount}</TableCell>
837-
<TableCell>{tableItem.status}</TableCell>
838-
<TableCell>{tableItem.type}</TableCell>
839-
<TableCell>{tableItem.method}</TableCell>
840-
<TableCell>{tableItem.name}</TableCell>
841-
</TableRow>
842-
))}
843-
</TableBody>
844-
</>
845-
)}
846-
</Table>,
847-
),
848-
).toThrow(
849-
`[Blade: TablePagination]: Value of 'currentPage' prop cannot be greater than the total pages`,
850-
);
851-
mockConsoleError.mockRestore();
852-
});
853809
});

0 commit comments

Comments
 (0)