diff --git a/frontend/pages/SoftwarePage/components/forms/PackageAdvancedOptions/PackageAdvancedOptions.tsx b/frontend/pages/SoftwarePage/components/forms/PackageAdvancedOptions/PackageAdvancedOptions.tsx index b7da404d09..89ddc6921a 100644 --- a/frontend/pages/SoftwarePage/components/forms/PackageAdvancedOptions/PackageAdvancedOptions.tsx +++ b/frontend/pages/SoftwarePage/components/forms/PackageAdvancedOptions/PackageAdvancedOptions.tsx @@ -218,6 +218,8 @@ const PackageAdvancedOptions = ({ ); }; + const requiresAdvancedOptions = ext === "exe" || ext === "tar.gz"; + return (
setShowAdvancedOptions(!showAdvancedOptions)} - disabled={!selectedPackage} + disabled={!selectedPackage || requiresAdvancedOptions} disabledTooltipContent={ - <> - Choose a file to modify
- advanced options. - + requiresAdvancedOptions ? ( + <>Install and uninstall scripts are required for .{ext} packages. + ) : ( + <> + Choose a file to modify
+ advanced options. + + ) } /> {(showAdvancedOptions || ext === "exe" || ext === "tar.gz") && diff --git a/frontend/pages/SoftwarePage/components/forms/PackageForm/helpers.tsx b/frontend/pages/SoftwarePage/components/forms/PackageForm/helpers.tsx index 14d0a9024c..88672b46aa 100644 --- a/frontend/pages/SoftwarePage/components/forms/PackageForm/helpers.tsx +++ b/frontend/pages/SoftwarePage/components/forms/PackageForm/helpers.tsx @@ -50,7 +50,10 @@ const FORM_VALIDATION_CONFIG: Record< { name: "requiredForExe", isValid: (formData) => { - if (formData.software?.type === "exe") { + if ( + formData.software?.type === "exe" || + getExtensionFromFileName(formData.software?.name || "") === "exe" + ) { // Handle undefined safely with nullish coalescing return (formData.installScript ?? "").trim().length > 0; } @@ -66,7 +69,7 @@ const FORM_VALIDATION_CONFIG: Record< getExtensionFromFileName(formData.software.name) === "tar.gz" ) { // Handle undefined safely with nullish coalescing - return (formData.uninstallScript ?? "").trim().length > 0; + return (formData.installScript ?? "").trim().length > 0; } return true; }, @@ -79,7 +82,10 @@ const FORM_VALIDATION_CONFIG: Record< { name: "requiredForExe", isValid: (formData) => { - if (formData.software?.type === "exe") { + if ( + formData.software?.type === "exe" || + getExtensionFromFileName(formData.software?.name || "") === "exe" + ) { // Handle undefined safely with nullish coalescing return (formData.uninstallScript ?? "").trim().length > 0; }