CreateImageWizard: filter already added packages
When a user searches for available packages, already chosen packages are filtered from the available packages list. This prevents the user from adding duplicate packages.
This commit is contained in:
parent
db6aa5158d
commit
4d987eb05e
2 changed files with 38 additions and 1 deletions
|
|
@ -80,6 +80,14 @@ const Packages = ({ defaultArch, ...props }) => {
|
|||
setPackagesAvailable(sortResults);
|
||||
});
|
||||
|
||||
// filter the packages by name
|
||||
const filterPackagesAvailable = useCallback((packageList) => {
|
||||
return packageList.filter((availablePackage) => {
|
||||
// returns true if no packages in the available or chosen list have the same name
|
||||
return !packagesChosen.some((chosenPackage) => availablePackage.name === chosenPackage.name);
|
||||
});
|
||||
});
|
||||
|
||||
// call api to list available packages
|
||||
const handlePackagesAvailableSearch = async () => {
|
||||
const { data } = await api.getPackages(
|
||||
|
|
@ -88,8 +96,9 @@ const Packages = ({ defaultArch, ...props }) => {
|
|||
packagesSearchName.current
|
||||
);
|
||||
if (data) {
|
||||
const packagesAvailableFiltered = filterPackagesAvailable(data);
|
||||
sortPackages(packagesAvailableFiltered);
|
||||
setPackagesAvailableFound(true);
|
||||
sortPackages(data);
|
||||
} else {
|
||||
setPackagesAvailableFound(false);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue