diff --git a/src/Components/CreateImageWizard/CreateImageWizard.tsx b/src/Components/CreateImageWizard/CreateImageWizard.tsx index 1c288f9d..9658e5a2 100644 --- a/src/Components/CreateImageWizard/CreateImageWizard.tsx +++ b/src/Components/CreateImageWizard/CreateImageWizard.tsx @@ -247,6 +247,8 @@ const CreateImageWizard = ({ isEdit }: CreateImageWizardProps) => { startIndex = 22; } + const [wasRegisterVisited, setWasRegisterVisited] = useState(false); + // Duplicating some of the logic from the Wizard component to allow for custom nav items status // for original code see https://github.com/patternfly/patternfly-react/blob/184c55f8d10e1d94ffd72e09212db56c15387c5e/packages/react-core/src/components/Wizard/WizardNavInternal.tsx#L128 const customStatusNavItem = ( @@ -255,7 +257,13 @@ const CreateImageWizard = ({ isEdit }: CreateImageWizardProps) => { steps: WizardStepType[], goToStepByIndex: (index: number) => void ) => { - const isVisitRequired = true; + const isVisitOptional = + 'parentId' in step && step.parentId === 'step-optional-steps'; + + if (step.id === 'step-register' && step.isVisited) { + setWasRegisterVisited(true); + } + const hasVisitedNextStep = steps.some( (s) => s.index > step.index && s.isVisited ); @@ -271,7 +279,9 @@ const CreateImageWizard = ({ isEdit }: CreateImageWizardProps) => { isCurrent={activeStep.id === step.id} isDisabled={ step.isDisabled || - (isVisitRequired && !step.isVisited && !hasVisitedNextStep) + (!step.isVisited && + !hasVisitedNextStep && + !(isVisitOptional && wasRegisterVisited)) } isVisited={step.isVisited || false} stepIndex={step.index} @@ -399,6 +409,7 @@ const CreateImageWizard = ({ isEdit }: CreateImageWizardProps) => { isHidden={ distribution === RHEL_10_BETA || !!process.env.IS_ON_PREMISE } + navItem={customStatusNavItem} footer={ } @@ -409,6 +420,7 @@ const CreateImageWizard = ({ isEdit }: CreateImageWizardProps) => { name="File system configuration" id="step-file-system" key="step-file-system" + navItem={customStatusNavItem} footer={ { @@ -451,6 +463,7 @@ const CreateImageWizard = ({ isEdit }: CreateImageWizardProps) => { name="Custom repositories" id="wizard-custom-repositories" key="wizard-custom-repositories" + navItem={customStatusNavItem} isHidden={ distribution === RHEL_10_BETA || !!process.env.IS_ON_PREMISE } @@ -465,6 +478,7 @@ const CreateImageWizard = ({ isEdit }: CreateImageWizardProps) => { name="Additional packages" id="wizard-additional-packages" key="wizard-additional-packages" + navItem={customStatusNavItem} isDisabled={snapshotValidation.disabledNext} footer={ @@ -476,6 +490,7 @@ const CreateImageWizard = ({ isEdit }: CreateImageWizardProps) => { name="Users" id="wizard-users" key="wizard-users" + navItem={customStatusNavItem} isHidden={!isUsersEnabled} footer={