@@ -123,25 +123,34 @@ export const CondaPkgDrawer: React.FunctionComponent<ICondaPkgDrawerProps> = (
123123 return ;
124124 }
125125
126- if ( selectedPackages . length > 0 ) {
127- setIsApplyingChanges ( true ) ;
128- await applyPackageChanges (
129- props . pkgModel ,
130- selectedPackages ,
131- props . envName
132- ) ;
133-
134- // Reset version_selected for all selected packages
135- selectedPackages . forEach ( pkg => {
136- pkg . version_selected = 'none' ;
137- } ) ;
126+ setIsApplyingChanges ( true ) ;
127+
128+ try {
129+ if ( selectedPackages . length > 0 ) {
130+ await applyPackageChanges (
131+ props . pkgModel ,
132+ selectedPackages ,
133+ props . envName
134+ ) ;
135+
136+ // Reset version_selected for all selected packages
137+ selectedPackages . forEach ( pkg => {
138+ pkg . version_selected = 'none' ;
139+ } ) ;
140+
141+ setSelectedPackages ( [ ] ) ;
142+ setIsApplyingChanges ( false ) ;
143+
144+ if ( props . onPackagesInstalled ) {
145+ props . onPackagesInstalled ( ) ;
146+ }
147+ }
138148
139- setSelectedPackages ( [ ] ) ;
149+ props . onClose ( ) ;
150+ } catch ( error ) {
151+ console . error ( 'Failed to install packages: ' , error ) ;
152+ } finally {
140153 setIsApplyingChanges ( false ) ;
141-
142- if ( props . onPackagesInstalled ) {
143- props . onPackagesInstalled ( ) ;
144- }
145154 }
146155 } ;
147156
@@ -278,9 +287,9 @@ export const CondaPkgDrawer: React.FunctionComponent<ICondaPkgDrawerProps> = (
278287 < button
279288 className = { Style . InstallButton }
280289 onClick = { handleInstall }
281- disabled = { selectedPackages . length === 0 }
290+ disabled = { selectedPackages . length === 0 || isApplyingChanges }
282291 >
283- Install Selected
292+ { isApplyingChanges ? 'Installing...' : ' Install Selected' }
284293 </ button >
285294 </ div >
286295 </ div >
0 commit comments