From 276080f1e3ef7201d13e58b7554abaeb03e1edd8 Mon Sep 17 00:00:00 2001 From: James Elson Date: Wed, 12 Jun 2024 14:27:37 -0700 Subject: [PATCH] Filter and search work together and no results icon added --- src/nextapp/pages/manager/gateways/index.tsx | 60 ++++++++++++++++---- 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/src/nextapp/pages/manager/gateways/index.tsx b/src/nextapp/pages/manager/gateways/index.tsx index 1da626248..4466e79d6 100644 --- a/src/nextapp/pages/manager/gateways/index.tsx +++ b/src/nextapp/pages/manager/gateways/index.tsx @@ -12,7 +12,6 @@ import { Spacer, Center, useToast, - FormControl, Select, } from '@chakra-ui/react'; import Head from 'next/head'; @@ -130,17 +129,31 @@ const MyGatewaysPage: React.FC = () => { }; // Filter and search results + const filterBySearch = (result) => { + const regex = new RegExp( + search.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'), + 'i' + ); + return result.filter( + (s) => regex.test(s.name) || regex.test(s.displayName) + ); + }; const namespaceSearchResults = React.useMemo(() => { const result = data?.allNamespaces ?? []; - if (search.trim()) { - const regex = new RegExp( - search.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'), - 'i' - ); - return result.filter( - (s) => regex.test(s.name) || regex.test(s.displayName) - ); + if (filter === 'disabled') { + return filterBySearch(result).filter( + (s) => s.orgEnabled === false && !s.orgUpdatedAt + ); + } else if (filter === 'pending') { + return filterBySearch(result).filter( + (s) => s.orgEnabled === false && s.orgUpdatedAt + ); + } else if (filter === 'enabled') { + return filterBySearch(result).filter((s) => s.orgEnabled === true); + } else { + return filterBySearch(result); + } } else { if (filter === 'disabled') { return result.filter((s) => s.orgEnabled === false && !s.orgUpdatedAt); @@ -226,7 +239,7 @@ const MyGatewaysPage: React.FC = () => { {namespaceSearchResults.length} gateways ))} {isLoading && Loading gateways...} - {isError && Gateways Failed to Load} + {isError && Gateways failed to load} {isSuccess && ( <> {namespaceSearchResults.map((namespace) => ( @@ -298,6 +311,33 @@ const MyGatewaysPage: React.FC = () => { )} ))} + {namespaceSearchResults.length === 0 && ( + <> + + Empty folder + + + + No results found + + + + )} )}