@@ -34,6 +34,7 @@ function AddConnectionModal({ open, onCancelCb, onSaveCb, connection }) {
3434 ) ;
3535 const [ localConnection , setLocalConnection ] = useState ( connection || { } ) ;
3636 const [ validationErrors , setValidationErrors ] = useState ( [ ] ) ;
37+ const [ connectionActive , setConnectionActive ] = useState ( false ) ;
3738
3839 const validateForm = ( ) => {
3940 let errors = [ ] ;
@@ -105,6 +106,7 @@ function AddConnectionModal({ open, onCancelCb, onSaveCb, connection }) {
105106 enqueueSnackbar ( "Connection test successful" , {
106107 variant : "success" ,
107108 } ) ;
109+ setConnectionActive ( true ) ;
108110 ws . close ( ) ;
109111 onCancelCb ( ) ;
110112 }
@@ -268,32 +270,37 @@ function AddConnectionModal({ open, onCancelCb, onSaveCb, connection }) {
268270 />
269271 </ DialogContent >
270272 < DialogActions >
271- < Button
272- onClick = { testConnection ( {
273- ...localConnection ,
274- ...{
275- provider_slug : connectionType ?. provider_slug ,
276- connection_type_slug : connectionType ?. slug ,
277- } ,
278- } ) }
279- >
280- Test Connection
281- </ Button >
282273 < Button onClick = { handleCloseCb } > Cancel</ Button >
283- < Button
284- onClick = { ( ) =>
285- handleSaveCb ( {
274+ { ! connectionActive && (
275+ < Button
276+ onClick = { testConnection ( {
286277 ...localConnection ,
287278 ...{
288279 provider_slug : connectionType ?. provider_slug ,
289280 connection_type_slug : connectionType ?. slug ,
290281 } ,
291- } )
292- }
293- variant = "contained"
294- >
295- Save
296- </ Button >
282+ } ) }
283+ variant = "contained"
284+ >
285+ Test Connection
286+ </ Button >
287+ ) }
288+ { connectionActive && (
289+ < Button
290+ onClick = { ( ) =>
291+ handleSaveCb ( {
292+ ...localConnection ,
293+ ...{
294+ provider_slug : connectionType ?. provider_slug ,
295+ connection_type_slug : connectionType ?. slug ,
296+ } ,
297+ } )
298+ }
299+ variant = "contained"
300+ >
301+ Save
302+ </ Button >
303+ ) }
297304 </ DialogActions >
298305 </ Dialog >
299306 ) ;
0 commit comments