@@ -28,15 +28,10 @@ import { Formik } from 'formik';
2828import { useNavigate , useParams } from 'react-router-dom-v5-compat' ;
2929
3030import { getOperatorSpecs } from '../../../../common/components/operators/operatorSpecs' ;
31- import ClustersService from '../../../services/ClustersService' ;
32- import { handleApiError , getApiErrorMessage } from '../../../../common/api' ;
33- import { useAlerts } from '../../../../common/components/AlertsContextProvider' ;
34- import { AlertVariant } from '@patternfly/react-core' ;
3531
3632const ReviewStep = ( ) => {
37- const { moveBack, disconnectedInfraEnv, setDisconnectedInfraEnv } = useClusterWizardContext ( ) ;
33+ const { moveBack, disconnectedInfraEnv } = useClusterWizardContext ( ) ;
3834 const { clusterId } = useParams < { clusterId : string } > ( ) ;
39- const { addAlert } = useAlerts ( ) ;
4035 const opSpecs = getOperatorSpecs ( ( ) => undefined ) ;
4136 const navigate = useNavigate ( ) ;
4237
@@ -52,55 +47,10 @@ const ReviewStep = () => {
5247 footer = {
5348 < ClusterWizardFooter
5449 onNext = { ( ) => {
55- void ( async ( ) => {
56- if ( disconnectedInfraEnv ?. downloadUrl ) {
57- // Open download in new tab - we need the window reference to detect when download starts
58- const downloadWindow = window . open ( disconnectedInfraEnv . downloadUrl , '_blank' ) ;
59-
60- // Wait for the download tab to close (indicates download has started)
61- // The tab closes automatically when browser initiates the file download
62- if ( downloadWindow ) {
63- await new Promise < void > ( ( resolve ) => {
64- const checkClosed = setInterval ( ( ) => {
65- if ( downloadWindow . closed ) {
66- clearInterval ( checkClosed ) ;
67- resolve ( ) ;
68- }
69- } , 200 ) ;
70- // Fallback timeout in case the window doesn't close (e.g., popup blocker)
71- setTimeout ( ( ) => {
72- clearInterval ( checkClosed ) ;
73- resolve ( ) ;
74- } , 10000 ) ;
75- } ) ;
76- }
77- }
78- if ( clusterId ) {
79- try {
80- await ClustersService . remove ( clusterId ) ;
81- // Remove infraEnv from wizard context after successful deregistration
82- setDisconnectedInfraEnv ( undefined ) ;
83- // Navigate to cluster-list only after successful deregistration
84- navigate ( '/cluster-list' ) ;
85- } catch ( error ) {
86- handleApiError ( error , ( ) => {
87- addAlert ( {
88- title : 'Failed to deregister cluster' ,
89- message : getApiErrorMessage ( error ) ,
90- variant : AlertVariant . danger ,
91- } ) ;
92- } ) ;
93- // Error handling: continue with navigation even if deregistration fails
94- // Still clear the context to avoid stale data
95- setDisconnectedInfraEnv ( undefined ) ;
96- // Navigate even on error to avoid getting stuck
97- navigate ( '/cluster-list' ) ;
98- }
99- } else {
100- // If there's no cluster to deregister, navigate immediately
101- navigate ( '/cluster-list' ) ;
102- }
103- } ) ( ) ;
50+ if ( disconnectedInfraEnv ?. downloadUrl ) {
51+ window . open ( disconnectedInfraEnv . downloadUrl , '_blank' ) ;
52+ }
53+ navigate ( '/cluster-list' ) ;
10454 } }
10555 onBack = { moveBack }
10656 nextButtonText = "Download ISO"
0 commit comments