From 5155c4214607c1e89c07334c3a7abf9b32fe9ed6 Mon Sep 17 00:00:00 2001 From: AmirReza Jamali Date: Mon, 13 Jul 2026 16:14:33 +0330 Subject: [PATCH] feat(tenders): scroll to top on pagination change Smoothly scroll the page to the top when users move between tender list pages, respecting reduced-motion preferences. Co-authored-by: Cursor --- .../Tables/tenders/useTenderListPresenter.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/components/Tables/tenders/useTenderListPresenter.ts b/src/components/Tables/tenders/useTenderListPresenter.ts index 0c30849..82d5ecb 100644 --- a/src/components/Tables/tenders/useTenderListPresenter.ts +++ b/src/components/Tables/tenders/useTenderListPresenter.ts @@ -384,7 +384,7 @@ const useTenderListPresenter = () => { const { pagination, - handlePaginationChange, + handlePaginationChange: changePaginationPage, buildFirstPageParams, hasNext, hasPrevious, @@ -396,6 +396,22 @@ const useTenderListPresenter = () => { error, }); + const handlePaginationChange = useCallback( + (event: { selected: number }) => { + if (typeof window !== "undefined") { + const reduceMotion = window.matchMedia( + "(prefers-reduced-motion: reduce)", + ).matches; + window.scrollTo({ + top: 0, + behavior: reduceMotion ? "auto" : "smooth", + }); + } + changePaginationPage(event); + }, + [changePaginationPage], + ); + const shouldShowPagination = !isPending && (hasPrevious || hasNext); const tendersList = data?.data?.tenders ?? [];