This is an automated email from the ASF dual-hosted git repository.

andytaylor pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/artemis-console.git

commit 199d3a8c549245d279d8e858166fcfcd3090abfa
Author: gchuf <[email protected]>
AuthorDate: Sat Apr 11 15:55:41 2026 +0200

    ARTEMIS-5963 - Fix pagination
    
    Fixes incorrect page count after navigating away from and back to the page
    Fixes per page options (apply last selection from user, saved in local 
storage)
---
 .../src/table/ArtemisTable.tsx                     | 26 +++++++++++++---------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git 
a/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/table/ArtemisTable.tsx
 
b/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/table/ArtemisTable.tsx
index 08e8433..143aa23 100644
--- 
a/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/table/ArtemisTable.tsx
+++ 
b/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/table/ArtemisTable.tsx
@@ -111,6 +111,16 @@ const operationOptions = [
     };
   }
 
+  const initialPerPage = () => {
+    if (broker.storageColumnLocation) {
+      const savedPerPage = artemisPreferencesService.loadTablePageSize(
+        broker.storageColumnLocation
+      );
+      return savedPerPage ?? 10;
+    }
+    return 10;
+  }
+
   const [rows, setRows] = useState([])
   const [resultsSize, setresultsSize] = useState(0)
   const [columnsLoaded, setColumnsLoaded] = useState(false);
@@ -120,11 +130,8 @@ const operationOptions = [
   const [isSortDropdownOpen, setIsSortDropdownOpen] = useState(false);
   const [isModalOpen, setIsModalOpen] = useState(false);
   const [page, setPage] = useState(1);
+  const [perPage, setPerPage] = useState(initialPerPage);
   const [isCompact, setIsCompact] = useState(false);
-  const [perPage, setPerPage] = useState(10);
-  const [perPageOption, setPerPageOption] = useState(1);
-  const pageSize = 
artemisPreferencesService.loadTablePageSize(broker.storageColumnLocation);
-
   const rootElement = document.getElementById('root') as HTMLElement;
   const popperProps = {
     position: 'right' as const,
@@ -159,7 +166,7 @@ const operationOptions = [
   useEffect(() => {
     if (!columnsLoaded && broker.storageColumnLocation) {
       const updatedColumns: Column[] = 
artemisPreferencesService.loadColumnPreferences(broker.storageColumnLocation, 
broker.allColumns);
-      if (pageSize == -1) {
+      if (perPage == -1) {
         setIsCompact(true);
       }
       setColumns(updatedColumns);
@@ -228,10 +235,6 @@ const operationOptions = [
   };
 
   const handlePerPageSelect = (_event: React.MouseEvent | React.KeyboardEvent 
| MouseEvent, newPerPage: number) => {
-    setPerPageOption(newPerPage);
-    if(broker.storageColumnLocation) {
-      
artemisPreferencesService.saveTablePageSize(broker.storageColumnLocation, 
newPerPage)
-    }
     if (newPerPage === -1) {
       setIsCompact(true);
       setPerPage(resultsSize);
@@ -240,6 +243,9 @@ const operationOptions = [
       setPerPage(newPerPage);
     }
     setPage(1);
+    if(broker.storageColumnLocation) {
+      
artemisPreferencesService.saveTablePageSize(broker.storageColumnLocation, 
newPerPage)
+    }
   };
 
   const getKeyByValue = (producer: never, columnName: string) => {
@@ -269,7 +275,7 @@ const operationOptions = [
     <Pagination
       itemCount={resultsSize}
       page={page}
-      perPage={perPageOption}
+      perPage={perPage}
       onSetPage={handleSetPage}
       onPerPageSelect={handlePerPageSelect}
       isCompact={isCompact}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to