diff --git a/src/Components/CreateImageWizard/steps/Oscap/components/PolicySelector.tsx b/src/Components/CreateImageWizard/steps/Oscap/components/PolicySelector.tsx index e9b40f0a..774efb21 100644 --- a/src/Components/CreateImageWizard/steps/Oscap/components/PolicySelector.tsx +++ b/src/Components/CreateImageWizard/steps/Oscap/components/PolicySelector.tsx @@ -24,7 +24,6 @@ import { } from '../../../../../store/imageBuilderApi'; import { addKernelArg, - addPackage, addPartition, changeCompliance, changeDisabledServices, @@ -93,7 +92,7 @@ const PolicySelector = () => { const hasWslTargetOnly = useHasSpecificTargetOnly('wsl'); const dispatch = useAppDispatch(); const [isOpen, setIsOpen] = useState(false); - const { clearCompliancePackages } = useSelectorHandlers(); + const { clearCompliancePackages, handlePackages } = useSelectorHandlers(); const { data: policies, @@ -152,23 +151,6 @@ const PolicySelector = () => { dispatch(clearKernelAppend()); }; - const handlePackages = ( - oldOscapPackages: string[], - newOscapPackages: string[] - ) => { - clearCompliancePackages(oldOscapPackages); - - for (const pkg of newOscapPackages) { - dispatch( - addPackage({ - name: pkg, - summary: 'Required by chosen compliance policy', - repository: 'distro', - }) - ); - } - }; - const handlePartitions = (oscapPartitions: Filesystem[]) => { dispatch(clearPartitions()); @@ -226,7 +208,11 @@ const PolicySelector = () => { const oscapPartitions = response.filesystem || []; const newOscapPackages = response.packages || []; handlePartitions(oscapPartitions); - handlePackages(oldOscapPackages, newOscapPackages); + handlePackages( + oldOscapPackages, + newOscapPackages, + 'Required by chosen compliance policy' + ); handleServices(response.services); handleKernelAppend(response.kernel?.append); dispatch( diff --git a/src/Components/CreateImageWizard/steps/Oscap/components/ProfileSelector.tsx b/src/Components/CreateImageWizard/steps/Oscap/components/ProfileSelector.tsx index 360e7a06..0c469db1 100644 --- a/src/Components/CreateImageWizard/steps/Oscap/components/ProfileSelector.tsx +++ b/src/Components/CreateImageWizard/steps/Oscap/components/ProfileSelector.tsx @@ -82,7 +82,7 @@ const ProfileSelector = () => { >([]); const complianceType = useAppSelector(selectComplianceType); const prefetchProfile = useBackendPrefetch('getOscapCustomizations'); - const { clearCompliancePackages } = useSelectorHandlers(); + const { clearCompliancePackages, handlePackages } = useSelectorHandlers(); const { data: profiles, @@ -191,23 +191,6 @@ const ProfileSelector = () => { setFilterValue(''); }; - const handlePackages = ( - oldOscapPackages: string[], - newOscapPackages: string[] - ) => { - clearCompliancePackages(oldOscapPackages); - - for (const pkg of newOscapPackages) { - dispatch( - addPackage({ - name: pkg, - summary: 'Required by chosen OpenSCAP profile', - repository: 'distro', - }) - ); - } - }; - const handlePartitions = (oscapPartitions: Filesystem[]) => { dispatch(clearPartitions()); @@ -309,7 +292,11 @@ const ProfileSelector = () => { const oscapPartitions = response.filesystem || []; const newOscapPackages = response.packages || []; handlePartitions(oscapPartitions); - handlePackages(oldOscapPackages, newOscapPackages); + handlePackages( + oldOscapPackages, + newOscapPackages, + 'Required by chosen OpenSCAP profile' + ); handleServices(response.services); handleKernelAppend(response.kernel?.append); dispatch( diff --git a/src/Components/CreateImageWizard/steps/Oscap/components/useSelectorHandlers.tsx b/src/Components/CreateImageWizard/steps/Oscap/components/useSelectorHandlers.tsx index 23941d8f..1d81249d 100644 --- a/src/Components/CreateImageWizard/steps/Oscap/components/useSelectorHandlers.tsx +++ b/src/Components/CreateImageWizard/steps/Oscap/components/useSelectorHandlers.tsx @@ -1,5 +1,5 @@ import { useAppDispatch } from '../../../../../store/hooks'; -import { removePackage } from '../../../../../store/wizardSlice'; +import { addPackage, removePackage } from '../../../../../store/wizardSlice'; export const useSelectorHandlers = () => { const dispatch = useAppDispatch(); @@ -10,7 +10,26 @@ export const useSelectorHandlers = () => { } }; + const handlePackages = ( + oldOscapPackages: string[], + newOscapPackages: string[], + reason: string + ) => { + clearCompliancePackages(oldOscapPackages); + + for (const pkg of newOscapPackages) { + dispatch( + addPackage({ + name: pkg, + summary: reason, + repository: 'distro', + }) + ); + } + }; + return { clearCompliancePackages, + handlePackages, }; };