From 3cb9fe0670673f11124329e4eb3c605d8108f27b Mon Sep 17 00:00:00 2001 From: Sanne Raymaekers Date: Fri, 14 Jun 2024 23:37:23 +0200 Subject: [PATCH] CreatEImageWizardV2: while searching show either pkgs or groups --- .../steps/Packages/Packages.tsx | 331 +++++++++--------- 1 file changed, 172 insertions(+), 159 deletions(-) diff --git a/src/Components/CreateImageWizardV2/steps/Packages/Packages.tsx b/src/Components/CreateImageWizardV2/steps/Packages/Packages.tsx index f5216847..1491d898 100644 --- a/src/Components/CreateImageWizardV2/steps/Packages/Packages.tsx +++ b/src/Components/CreateImageWizardV2/steps/Packages/Packages.tsx @@ -166,6 +166,14 @@ const Packages = () => { const debouncedSearchTermLengthOf1 = debouncedSearchTerm.length === 1; const debouncedSearchTermIsGroup = debouncedSearchTerm.startsWith('@'); + // While it's searching for packages or groups, only show either packages or groups, without mixing the two. + const showPackages = + (debouncedSearchTerm && !debouncedSearchTermIsGroup) || + toggleSelected === 'toggle-selected'; + const showGroups = + (debouncedSearchTerm && debouncedSearchTermIsGroup) || + toggleSelected === 'toggle-selected'; + const [ searchRecommendedRpms, { @@ -976,168 +984,173 @@ const Packages = () => { const composePkgTable = () => { let rows: ReactElement[] = []; - rows = rows.concat( - transformedGroups - .slice(computeStart(), computeEnd()) - .map((grp, rowIndex) => ( - - g.name === grp.name), - rowIndex: rowIndex, - onSelect: (event, isSelecting) => - handleGroupSelect(grp, rowIndex, isSelecting), - }} - /> - - @{grp.name} - 0 - ? { height: '40em', overflow: 'scroll' } - : {} - } - > - {grp.package_list.length > 0 ? ( - - - {grp.package_list.map((pkg) => ( - - - - ))} - -
{pkg}
- ) : ( - This group has no packages - )} - - } - > - -
- - - {grp.description ? ( - grp.description - ) : ( - Not available - )} - - {grp.repository === 'distro' ? ( - <> - - Red Hat logo{' '} - Red Hat repository - - Supported - - ) : grp.repository === 'custom' ? ( - <> - Third party repository - Not supported - - ) : grp.repository === 'recommended' ? ( - <> - - - - {' '} - EPEL {distribution.startsWith('rhel-8') ? '8' : '9'}{' '} - Everything x86_64 - - Not supported - - ) : ( - <> - Not available - Not available - - )} - - )) - ); - rows = rows.concat( - transformedPackages - .slice(computeStart(), computeEnd()) - .map((pkg, rowIndex) => ( - - p.name === pkg.name), - rowIndex: rowIndex, - onSelect: (event, isSelecting) => - handleSelect(pkg, rowIndex, isSelecting), - }} - /> - {pkg.name} - - {pkg.summary ? ( - pkg.summary + if (showGroups) { + rows = rows.concat( + transformedGroups + .slice(computeStart(), computeEnd()) + .map((grp, rowIndex) => ( + + g.name === grp.name), + rowIndex: rowIndex, + onSelect: (event, isSelecting) => + handleGroupSelect(grp, rowIndex, isSelecting), + }} + /> + + @{grp.name} + 0 + ? { height: '40em', overflow: 'scroll' } + : {} + } + > + {grp.package_list.length > 0 ? ( + + + {grp.package_list.map((pkg) => ( + + + + ))} + +
{pkg}
+ ) : ( + This group has no packages + )} + + } + > + +
+ + + {grp.description ? ( + grp.description + ) : ( + Not available + )} + + {grp.repository === 'distro' ? ( + <> + + Red Hat logo{' '} + Red Hat repository + + Supported + + ) : grp.repository === 'custom' ? ( + <> + Third party repository + Not supported + + ) : grp.repository === 'recommended' ? ( + <> + + + + {' '} + EPEL {distribution.startsWith('rhel-8') ? '8' : '9'}{' '} + Everything x86_64 + + Not supported + ) : ( - Not available + <> + Not available + Not available + )} - - {pkg.repository === 'distro' ? ( - <> - - Red Hat logo{' '} - Red Hat repository - - Supported - - ) : pkg.repository === 'custom' ? ( - <> - Third party repository - Not supported - - ) : pkg.repository === 'recommended' ? ( - <> - - - - {' '} - EPEL {distribution.startsWith('rhel-8') ? '8' : '9'}{' '} - Everything x86_64 - - Not supported - - ) : ( - <> - Not available - Not available - - )} - - )) - ); + + )) + ); + } + + if (showPackages) { + rows = rows.concat( + transformedPackages + .slice(computeStart(), computeEnd()) + .map((pkg, rowIndex) => ( + + p.name === pkg.name), + rowIndex: rowIndex, + onSelect: (event, isSelecting) => + handleSelect(pkg, rowIndex, isSelecting), + }} + /> + {pkg.name} + + {pkg.summary ? ( + pkg.summary + ) : ( + Not available + )} + + {pkg.repository === 'distro' ? ( + <> + + Red Hat logo{' '} + Red Hat repository + + Supported + + ) : pkg.repository === 'custom' ? ( + <> + Third party repository + Not supported + + ) : pkg.repository === 'recommended' ? ( + <> + + + + {' '} + EPEL {distribution.startsWith('rhel-8') ? '8' : '9'}{' '} + Everything x86_64 + + Not supported + + ) : ( + <> + Not available + Not available + + )} + + )) + ); + } return rows; };