← Back to team overview

sts-sponsors team mailing list archive

[Merge] ~petermakowski/maas-site-manager:wrap-empty-array-in-useMemo into maas-site-manager:main

 

Peter Makowski has proposed merging ~petermakowski/maas-site-manager:wrap-empty-array-in-useMemo into maas-site-manager:main.

Commit message:
wrap empty sites array in useMemo

Requested reviews:
  MAAS Lander (maas-lander): unittests
  MAAS Committers (maas-committers)

For more details, see:
https://code.launchpad.net/~petermakowski/maas-site-manager/+git/site-manager/+merge/438450
-- 
Your team MAAS Committers is requested to review the proposed merge of ~petermakowski/maas-site-manager:wrap-empty-array-in-useMemo into maas-site-manager:main.
diff --git a/frontend/src/components/SitesList/components/SitesTable.tsx b/frontend/src/components/SitesList/components/SitesTable.tsx
index 1e12a93..ebaf1bb 100644
--- a/frontend/src/components/SitesList/components/SitesTable.tsx
+++ b/frontend/src/components/SitesList/components/SitesTable.tsx
@@ -169,9 +169,11 @@ const SitesTable = ({
   );
 
   const [rowSelection, setRowSelection] = useState({});
+  // wrap the empty array in useMemo to avoid re-rendering the empty table on every render
+  const noItems = useMemo<Site[]>(() => [], []);
 
   const table = useReactTable<Site>({
-    data: data?.items || [],
+    data: data?.items || noItems,
     columns,
     state: {
       rowSelection,