diff --git a/packages/core/admin/admin/src/content-manager/pages/ListView/index.js b/packages/core/admin/admin/src/content-manager/pages/ListView/index.js index ced9878e09..64682fe623 100644 --- a/packages/core/admin/admin/src/content-manager/pages/ListView/index.js +++ b/packages/core/admin/admin/src/content-manager/pages/ListView/index.js @@ -166,6 +166,22 @@ function ListView({ data: { results, pagination: paginationResult }, } = await fetchClient.get(endPoint, options); + // If user enters a page number that doesn't exist, redirect him to the last page + if (paginationResult.page > paginationResult.pageCount && paginationResult.pageCount > 0) { + const query = { + ...params, + page: paginationResult.pageCount, + }; + + push({ + pathname, + state: { from: pathname }, + search: stringify(query), + }); + + return; + } + notifyStatus( formatMessage( { @@ -205,7 +221,17 @@ function ListView({ }); } }, - [formatMessage, getData, getDataSucceeded, notifyStatus, push, toggleNotification, fetchClient] + [ + formatMessage, + getData, + getDataSucceeded, + notifyStatus, + push, + toggleNotification, + fetchClient, + params, + pathname, + ] ); const handleConfirmDeleteAllData = React.useCallback(