Wizard: Edit to keep the last removed package among the selected ones
Modify the logic of removing a package so that it remains in the selected table for possible re-addition until another package is removed or the wizard is switched to another screen
This commit is contained in:
parent
b91981c17c
commit
7aa3a3a6d5
1 changed files with 13 additions and 0 deletions
|
|
@ -138,6 +138,9 @@ const Packages = () => {
|
||||||
origin: ContentOrigin.EXTERNAL,
|
origin: ContentOrigin.EXTERNAL,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const [currentlyRemovedPackages, setCurrentlyRemovedPackages] = useState<
|
||||||
|
IBPackageWithRepositoryInfo[]
|
||||||
|
>([]);
|
||||||
const [isRepoModalOpen, setIsRepoModalOpen] = useState(false);
|
const [isRepoModalOpen, setIsRepoModalOpen] = useState(false);
|
||||||
const [isSelectingPackage, setIsSelectingPackage] = useState<
|
const [isSelectingPackage, setIsSelectingPackage] = useState<
|
||||||
IBPackageWithRepositoryInfo | undefined
|
IBPackageWithRepositoryInfo | undefined
|
||||||
|
|
@ -692,6 +695,9 @@ const Packages = () => {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const selectedPackages = [...packages];
|
const selectedPackages = [...packages];
|
||||||
|
if (currentlyRemovedPackages.length > 0) {
|
||||||
|
selectedPackages.push(...currentlyRemovedPackages);
|
||||||
|
}
|
||||||
if (toggleSourceRepos === RepoToggle.INCLUDED) {
|
if (toggleSourceRepos === RepoToggle.INCLUDED) {
|
||||||
return selectedPackages;
|
return selectedPackages;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -699,6 +705,7 @@ const Packages = () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [
|
}, [
|
||||||
|
currentlyRemovedPackages,
|
||||||
dataCustomPackages,
|
dataCustomPackages,
|
||||||
dataDistroPackages,
|
dataDistroPackages,
|
||||||
dataRecommendedPackages,
|
dataRecommendedPackages,
|
||||||
|
|
@ -808,9 +815,13 @@ const Packages = () => {
|
||||||
setIsSelectingPackage(pkg);
|
setIsSelectingPackage(pkg);
|
||||||
} else {
|
} else {
|
||||||
dispatch(addPackage(pkg));
|
dispatch(addPackage(pkg));
|
||||||
|
setCurrentlyRemovedPackages((prev) =>
|
||||||
|
prev.filter((curr) => curr.name !== pkg.name)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dispatch(removePackage(pkg.name));
|
dispatch(removePackage(pkg.name));
|
||||||
|
setCurrentlyRemovedPackages((last) => [...last, pkg]);
|
||||||
if (
|
if (
|
||||||
isSuccessEpelRepo &&
|
isSuccessEpelRepo &&
|
||||||
epelRepo?.data &&
|
epelRepo?.data &&
|
||||||
|
|
@ -855,12 +866,14 @@ const Packages = () => {
|
||||||
|
|
||||||
const handleFilterToggleClick = (event: React.MouseEvent) => {
|
const handleFilterToggleClick = (event: React.MouseEvent) => {
|
||||||
const id = event.currentTarget.id;
|
const id = event.currentTarget.id;
|
||||||
|
setCurrentlyRemovedPackages([]);
|
||||||
setPage(1);
|
setPage(1);
|
||||||
setToggleSelected(id);
|
setToggleSelected(id);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleRepoToggleClick = (type: RepoToggle) => {
|
const handleRepoToggleClick = (type: RepoToggle) => {
|
||||||
if (toggleSourceRepos !== type) {
|
if (toggleSourceRepos !== type) {
|
||||||
|
setCurrentlyRemovedPackages([]);
|
||||||
setPage(1);
|
setPage(1);
|
||||||
setToggleSourceRepos(type);
|
setToggleSourceRepos(type);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue