1- import React , { useCallback , useEffect , useState } from 'react' ;
1+ import React from 'react' ;
22import { Form , Input , InputNumber } from 'antd' ;
33import { useTranslation } from 'react-i18next' ;
44
@@ -9,30 +9,19 @@ export const ConnectionOracle = () => {
99 const { t } = useTranslation ( 'connection' ) ;
1010 const form = Form . useFormInstance ( ) ;
1111
12- const [ isServiceNameDisabled , setServiceNameDisabled ] = useState ( false ) ;
13- const [ isSidDisabled , setSidDisabled ] = useState ( false ) ;
12+ Form . useWatch ( [ 'connection_data' , 'service_name' ] , form ) ;
13+ Form . useWatch ( [ 'connection_data' , 'sid' ] , form ) ;
1414
15- const changeDisabledFields = useCallback ( ( ) => {
16- const serviceName = form . getFieldValue ( [ 'connection_data' , 'service_name' ] ) ;
17- const sid = form . getFieldValue ( [ 'connection_data' , 'sid' ] ) ;
18- setServiceNameDisabled ( ! ! sid ) ;
19- setSidDisabled ( ! ! serviceName ) ;
20- } , [ form ] ) ;
15+ const serviceName = form . getFieldValue ( [ 'connection_data' , 'service_name' ] ) ;
16+ const sid = form . getFieldValue ( [ 'connection_data' , 'sid' ] ) ;
2117
2218 const handleFieldChange = ( ) => {
23- changeDisabledFields ( ) ;
2419 form . validateFields ( [
2520 [ 'connection_data' , 'service_name' ] ,
2621 [ 'connection_data' , 'sid' ] ,
2722 ] ) ;
2823 } ;
2924
30- //* It needs to validate required fields service_name and sid correctly if they have initial values
31- useEffect ( ( ) => {
32- // eslint-disable-next-line react-hooks/set-state-in-effect
33- changeDisabledFields ( ) ;
34- } , [ changeDisabledFields ] ) ;
35-
3625 return (
3726 < >
3827 < Form . Item label = { t ( 'host' ) } name = { [ 'connection_data' , 'host' ] } rules = { [ { required : true } ] } >
@@ -46,24 +35,24 @@ export const ConnectionOracle = () => {
4635 name = { [ 'connection_data' , 'service_name' ] }
4736 rules = { [
4837 {
49- required : ! isServiceNameDisabled ,
38+ required : ! sid ,
5039 message : t ( 'oracle.serviceNameOrSidRequired' ) ,
5140 } ,
5241 ] }
5342 >
54- < Input size = "large" disabled = { isServiceNameDisabled } onChange = { handleFieldChange } placeholder = "XEPDB1" />
43+ < Input size = "large" disabled = { ! ! sid } onChange = { handleFieldChange } placeholder = "XEPDB1" />
5544 </ Form . Item >
5645 < Form . Item
5746 label = { t ( 'oracle.sid' ) }
5847 name = { [ 'connection_data' , 'sid' ] }
5948 rules = { [
6049 {
61- required : ! isSidDisabled ,
50+ required : ! serviceName ,
6251 message : t ( 'oracle.serviceNameOrSidRequired' ) ,
6352 } ,
6453 ] }
6554 >
66- < Input size = "large" disabled = { isSidDisabled } onChange = { handleFieldChange } />
55+ < Input size = "large" disabled = { ! ! serviceName } onChange = { handleFieldChange } />
6756 </ Form . Item >
6857 < ConnectionAuthBasic />
6958 </ >
0 commit comments