Update repository modal funcitonality
This commit is contained in:
parent
f9aae48dd1
commit
caa3847990
1 changed files with 32 additions and 33 deletions
|
|
@ -103,7 +103,9 @@ const Packages = () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
const [isRepoModalOpen, setIsRepoModalOpen] = useState(false);
|
const [isRepoModalOpen, setIsRepoModalOpen] = useState(false);
|
||||||
const [isSelectingPackage, setIsSelectingPackage] = useState('');
|
const [isSelectingPackage, setIsSelectingPackage] = useState<
|
||||||
|
IBPackageWithRepositoryInfo | undefined
|
||||||
|
>();
|
||||||
const [perPage, setPerPage] = useState(10);
|
const [perPage, setPerPage] = useState(10);
|
||||||
const [page, setPage] = useState(1);
|
const [page, setPage] = useState(1);
|
||||||
const [toggleSelected, setToggleSelected] = useState('toggle-available');
|
const [toggleSelected, setToggleSelected] = useState('toggle-available');
|
||||||
|
|
@ -152,30 +154,26 @@ const Packages = () => {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (debouncedSearchTerm.length > 2) {
|
if (debouncedSearchTerm.length > 2) {
|
||||||
if (toggleSourceRepos === RepoToggle.INCLUDED) {
|
if (toggleSourceRepos === RepoToggle.INCLUDED) {
|
||||||
(async () => {
|
searchRpms({
|
||||||
await searchRpms({
|
apiContentUnitSearchRequest: {
|
||||||
apiContentUnitSearchRequest: {
|
search: debouncedSearchTerm,
|
||||||
search: debouncedSearchTerm,
|
urls: customRepositories.flatMap((repo) => {
|
||||||
urls: customRepositories.flatMap((repo) => {
|
if (!repo.baseurl) {
|
||||||
if (!repo.baseurl) {
|
throw new Error(
|
||||||
throw new Error(
|
`Repository (id: ${repo.id}, name: ${repo?.name}) is missing baseurl`
|
||||||
`Repository (id: ${repo.id}, name: ${repo?.name}) is missing baseurl`
|
);
|
||||||
);
|
}
|
||||||
}
|
return repo.baseurl;
|
||||||
return repo.baseurl;
|
}),
|
||||||
}),
|
},
|
||||||
},
|
});
|
||||||
});
|
|
||||||
})();
|
|
||||||
} else {
|
} else {
|
||||||
(async () => {
|
searchRecommendedRpms({
|
||||||
await searchRecommendedRpms({
|
apiContentUnitSearchRequest: {
|
||||||
apiContentUnitSearchRequest: {
|
search: debouncedSearchTerm,
|
||||||
search: debouncedSearchTerm,
|
urls: [epelRepoUrlByDistribution],
|
||||||
urls: [epelRepoUrlByDistribution],
|
},
|
||||||
},
|
});
|
||||||
});
|
|
||||||
})();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [
|
}, [
|
||||||
|
|
@ -462,7 +460,7 @@ const Packages = () => {
|
||||||
</Thead>
|
</Thead>
|
||||||
<Tbody>
|
<Tbody>
|
||||||
<Tr>
|
<Tr>
|
||||||
<Td>{isSelectingPackage}</Td>
|
<Td>{isSelectingPackage?.name}</Td>
|
||||||
<Td>
|
<Td>
|
||||||
EPEL {distribution === 'rhel-8' ? '8' : '9'} Everything x86_64
|
EPEL {distribution === 'rhel-8' ? '8' : '9'} Everything x86_64
|
||||||
</Td>
|
</Td>
|
||||||
|
|
@ -593,7 +591,6 @@ const Packages = () => {
|
||||||
isSelecting: boolean
|
isSelecting: boolean
|
||||||
) => {
|
) => {
|
||||||
if (isSelecting) {
|
if (isSelecting) {
|
||||||
dispatch(addPackage(pkg));
|
|
||||||
if (
|
if (
|
||||||
isSuccessEpelRepo &&
|
isSuccessEpelRepo &&
|
||||||
epelRepo.data &&
|
epelRepo.data &&
|
||||||
|
|
@ -601,7 +598,9 @@ const Packages = () => {
|
||||||
!recommendedRepositories.some((repo) => repo.name?.startsWith('EPEL'))
|
!recommendedRepositories.some((repo) => repo.name?.startsWith('EPEL'))
|
||||||
) {
|
) {
|
||||||
setIsRepoModalOpen(true);
|
setIsRepoModalOpen(true);
|
||||||
setIsSelectingPackage(pkg.name);
|
setIsSelectingPackage(pkg);
|
||||||
|
} else {
|
||||||
|
dispatch(addPackage(pkg));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dispatch(removePackage(pkg.name));
|
dispatch(removePackage(pkg.name));
|
||||||
|
|
@ -695,26 +694,24 @@ const Packages = () => {
|
||||||
|
|
||||||
const handleCloseModalToggle = () => {
|
const handleCloseModalToggle = () => {
|
||||||
setIsRepoModalOpen(!isRepoModalOpen);
|
setIsRepoModalOpen(!isRepoModalOpen);
|
||||||
|
setIsSelectingPackage(undefined);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleConfirmModalToggle = () => {
|
const handleConfirmModalToggle = async () => {
|
||||||
if (!epelRepo || !epelRepo.data) {
|
if (!epelRepo || !epelRepo.data) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`There was an error while adding the recommended repository.`
|
`There was an error while adding the recommended repository.`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
const enableEpelRepository = async () => {
|
if (epelRepo.data.length === 0) {
|
||||||
await createRepository({
|
await createRepository({
|
||||||
apiRepositoryRequest: distribution.startsWith('rhel-8')
|
apiRepositoryRequest: distribution.startsWith('rhel-8')
|
||||||
? EPEL_8_REPO_DEFINITION
|
? EPEL_8_REPO_DEFINITION
|
||||||
: EPEL_9_REPO_DEFINITION,
|
: EPEL_9_REPO_DEFINITION,
|
||||||
});
|
});
|
||||||
};
|
|
||||||
|
|
||||||
if (epelRepo.data.length === 0) {
|
|
||||||
enableEpelRepository();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dispatch(addPackage(isSelectingPackage!));
|
||||||
dispatch(addRecommendedRepository(epelRepo.data[0]));
|
dispatch(addRecommendedRepository(epelRepo.data[0]));
|
||||||
setIsRepoModalOpen(!isRepoModalOpen);
|
setIsRepoModalOpen(!isRepoModalOpen);
|
||||||
};
|
};
|
||||||
|
|
@ -823,6 +820,8 @@ const Packages = () => {
|
||||||
toggleSelected,
|
toggleSelected,
|
||||||
toggleSourceRepos,
|
toggleSourceRepos,
|
||||||
transformedPackages,
|
transformedPackages,
|
||||||
|
isSelectingPackage,
|
||||||
|
recommendedRepositories,
|
||||||
transformedPackages.length,
|
transformedPackages.length,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue