diff --git a/libs/ui-lib/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.tsx b/libs/ui-lib/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.tsx index 560204235c..11c1492a2a 100644 --- a/libs/ui-lib/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.tsx +++ b/libs/ui-lib/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.tsx @@ -10,7 +10,7 @@ import { } from '@patternfly/react-core'; import { AgentClusterInstallK8sResource, ClusterDeploymentK8sResource, OsImage } from '../../types'; import { ClusterImageSetK8sResource } from '../../types/k8s/cluster-image-set'; -import { getOCPVersions, getSelectedVersion } from '../helpers'; +import { getOCPVersions } from '../helpers'; import { useTranslation } from '../../../common/hooks/use-translation-wrapper'; import { ClusterDetailsFormFields, @@ -38,17 +38,14 @@ export const ClusterDeploymentDetailsFormWrapper = ({ }) => { const { activeStep, goToPrevStep, goToNextStep, close } = useWizardContext(); const { syncError } = React.useContext(ClusterDeploymentWizardContext); - const { submitForm, isSubmitting, isValid, isValidating, dirty } = - useFormikContext(); + const { isSubmitting, isValid, isValidating } = useFormikContext(); const { t } = useTranslation(); + // ClusterDeploymentDetailsFormWrapper is exclusively used by ClusterDeploymentWizard (edit flow). + // No form submission needed here—just navigate to the next step. const handleOnNext = React.useCallback(() => { - if (dirty) { - void submitForm(); - } else { - void goToNextStep(); - } - }, [dirty, goToNextStep, submitForm]); + void goToNextStep(); + }, [goToNextStep]); const footer = React.useMemo( () => ( @@ -84,8 +81,7 @@ export const ClusterDeploymentDetailsFormWrapper = ({ ); }; -const ClusterDeploymentDetailsForm: React.FC = ({ - agentClusterInstall, +export const ClusterDeploymentDetailsForm: React.FC = ({ clusterDeployment, clusterImages, extensionAfter, @@ -103,18 +99,13 @@ const ClusterDeploymentDetailsForm: React.FC [clusterImages, isNutanix, osImages], ); - const forceOpenshiftVersion = agentClusterInstall - ? getSelectedVersion(clusterImages, agentClusterInstall) - : undefined; const isEditFlow = !!clusterDeployment; const { values } = useFormikContext(); const [cpuArchitectures, allowHighlyAvailable] = React.useMemo(() => { const cpuArchitectures = [CpuArchitecture.x86, CpuArchitecture.ARM, CpuArchitecture.s390x]; - const version = allVersions.find( - (ver) => ver.value === values.openshiftVersion || ver.version === forceOpenshiftVersion, - ); + const version = allVersions.find((ver) => ver.value === values.openshiftVersion); const isMulti = version?.cpuArchitectures?.[0] === CpuArchitecture.MULTI; const highlyAvailableSupported = toNumber(version?.version?.split('.')?.[1]) >= 18; @@ -122,7 +113,7 @@ const ClusterDeploymentDetailsForm: React.FC (isMulti ? cpuArchitectures : version?.cpuArchitectures) as SupportedCpuArchitecture[], highlyAvailableSupported && !isMulti, ]; - }, [allVersions, forceOpenshiftVersion, values.openshiftVersion]); + }, [allVersions, values.openshiftVersion]); return ( <> @@ -140,7 +131,6 @@ const ClusterDeploymentDetailsForm: React.FC versions={versions} allVersions={allVersions} isEditFlow={isEditFlow} - forceOpenshiftVersion={forceOpenshiftVersion} extensionAfter={extensionAfter} isNutanix={isNutanix} cpuArchitectures={cpuArchitectures} diff --git a/libs/ui-lib/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx b/libs/ui-lib/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx index 724a6e892e..65773bcbf5 100644 --- a/libs/ui-lib/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +++ b/libs/ui-lib/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx @@ -19,7 +19,6 @@ import { getNetworkType } from '../helpers'; export type ClusterDetailsFormFieldsProps = { isEditFlow: boolean; - forceOpenshiftVersion?: string; extensionAfter?: { [key: string]: React.ReactElement }; versions: OpenshiftVersionOptionType[]; allVersions: OpenshiftVersionOptionType[]; @@ -50,7 +49,6 @@ export const ClusterDetailsFormFields: React.FC = isEditFlow, versions, allVersions, - forceOpenshiftVersion, extensionAfter, isNutanix, cpuArchitectures, @@ -63,7 +61,7 @@ export const ClusterDetailsFormFields: React.FC = const { name, baseDnsDomain } = values; React.useEffect(() => { - if (!versions.length && !values.openshiftVersion) { + if (!versions.length && !values.openshiftVersion && !isEditFlow) { const fallbackOpenShiftVersion = allVersions.find((version) => version.default); setFieldValue('customOpenshiftSelect', fallbackOpenShiftVersion); setFieldValue('openshiftVersion', fallbackOpenShiftVersion?.value); @@ -138,9 +136,11 @@ export const ClusterDetailsFormFields: React.FC = isRequired /> )} - {forceOpenshiftVersion ? ( + {isEditFlow ? ( - {t('ai:OpenShift')} {forceOpenshiftVersion} + {t('ai:OpenShift')}{' '} + {allVersions.find((v) => v.value === values.openshiftVersion)?.version || + values.openshiftVersion} ) : ( <>