From d1b005e373008a5129997c8812540a306974a11e Mon Sep 17 00:00:00 2001 From: cloby99 Date: Thu, 2 Jul 2026 14:01:39 +0530 Subject: [PATCH] [Customer Portal Webapp] fix: prevent paginated product/version dropdown from capping at 20 items --- .../components/deployments/AddProductModal.tsx | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/apps/customer-portal/webapp/src/features/project-details/components/deployments/AddProductModal.tsx b/apps/customer-portal/webapp/src/features/project-details/components/deployments/AddProductModal.tsx index dce55477c6..cf3408c765 100644 --- a/apps/customer-portal/webapp/src/features/project-details/components/deployments/AddProductModal.tsx +++ b/apps/customer-portal/webapp/src/features/project-details/components/deployments/AddProductModal.tsx @@ -90,10 +90,18 @@ export default function AddProductModal({ const accumulatedProductsLengthRef = useRef(0); const accumulatedVersionsLengthRef = useRef(0); + const productsRef = useRef([]); + const versionsRef = useRef([]); + useLayoutEffect(() => { + productsRef.current = products; accumulatedProductsLengthRef.current = products.length; + }, [products]); + + useLayoutEffect(() => { + versionsRef.current = versions; accumulatedVersionsLengthRef.current = versions.length; - }, [products, versions]); + }, [versions]); const resetModalState = useCallback(() => { setForm({ ...ADD_PRODUCT_MODAL_INITIAL_FORM }); @@ -173,7 +181,7 @@ export default function AddProductModal({ return; } - const prevProducts = products; + const prevProducts = productsRef.current; const prevProductIds = new Set( prevProducts.map((p) => p.id).filter((id): id is string => Boolean(id)), ); @@ -196,7 +204,7 @@ export default function AddProductModal({ applyServerProductsTotal(); } setProducts([...prevProducts, ...newProductItems]); - }, [productsPage, products]); + }, [productsPage]); const productsTotalRecords = Number.isFinite(cachedProductsTotalRecords) ? (cachedProductsTotalRecords as number) @@ -283,7 +291,7 @@ export default function AddProductModal({ return; } - const prevVersions = versions; + const prevVersions = versionsRef.current; const prevVersionIds = new Set( prevVersions.map((v) => v.id).filter((id): id is string => Boolean(id)), ); @@ -306,7 +314,7 @@ export default function AddProductModal({ applyServerVersionsTotal(); } setVersions([...prevVersions, ...newVersionItems]); - }, [form.productId, versionsPage, versions]); + }, [form.productId, versionsPage]); /* eslint-enable react-hooks/set-state-in-effect */ const versionsTotalRecords = Number.isFinite(cachedVersionsTotalRecords)