@@ -14,33 +14,43 @@ import {
14
14
import { BuildType } from 'uiSrc/constants/env'
15
15
import { SECURITY_FIELD } from 'uiSrc/constants'
16
16
import { appInfoSelector } from 'uiSrc/slices/app/info'
17
- import { handlePasteHostName , MAX_PORT_NUMBER , MAX_TIMEOUT_NUMBER , selectOnFocus , validateField , validatePortNumber , validateTimeoutNumber } from 'uiSrc/utils'
18
- import { ConnectionType , InstanceType } from 'uiSrc/slices/interfaces'
19
- import { DbConnectionInfo } from 'uiSrc/pages/home/interfaces'
17
+ import {
18
+ handlePasteHostName ,
19
+ MAX_PORT_NUMBER ,
20
+ MAX_TIMEOUT_NUMBER ,
21
+ selectOnFocus ,
22
+ validateField ,
23
+ validatePortNumber ,
24
+ validateTimeoutNumber ,
25
+ } from 'uiSrc/utils'
26
+ import { DbConnectionInfo , IPasswordType } from 'uiSrc/pages/home/interfaces'
27
+
28
+ interface IShowFields {
29
+ alias : boolean
30
+ host : boolean
31
+ port : boolean
32
+ timeout : boolean
33
+ }
20
34
21
35
export interface Props {
22
36
flexGroupClassName ?: string
23
37
flexItemClassName ?: string
24
38
formik : FormikProps < DbConnectionInfo >
25
- isEditMode ?: boolean
26
- isCloneMode ?: boolean
27
39
onHostNamePaste : ( content : string ) => boolean
28
- instanceType : InstanceType
29
- connectionType ?: ConnectionType
30
- isFromCloud ?: boolean
40
+ showFields : IShowFields
41
+ autoFocus ?: boolean
42
+ passwordType ?: IPasswordType
31
43
}
32
44
33
45
const DatabaseForm = ( props : Props ) => {
34
46
const {
35
47
flexGroupClassName = '' ,
36
48
flexItemClassName = '' ,
37
49
formik,
38
- isEditMode = false ,
39
- isCloneMode = false ,
40
50
onHostNamePaste,
41
- instanceType ,
42
- connectionType ,
43
- isFromCloud ,
51
+ autoFocus = false ,
52
+ showFields ,
53
+ passwordType = IPasswordType . Password ,
44
54
} = props
45
55
46
56
const { server } = useSelector ( appInfoSelector )
@@ -84,11 +94,11 @@ const DatabaseForm = (props: Props) => {
84
94
return (
85
95
< >
86
96
< EuiFlexGroup className = { flexGroupClassName } >
87
- { ( ! isEditMode || isCloneMode ) && ! isFromCloud && (
97
+ { showFields . host && (
88
98
< EuiFlexItem className = { flexItemClassName } >
89
99
< EuiFormRow label = "Host*" >
90
100
< EuiFieldText
91
- autoFocus = { ! isCloneMode && isEditMode }
101
+ autoFocus = { autoFocus }
92
102
name = "host"
93
103
id = "host"
94
104
data-testid = "host"
@@ -109,7 +119,7 @@ const DatabaseForm = (props: Props) => {
109
119
</ EuiFormRow >
110
120
</ EuiFlexItem >
111
121
) }
112
- { server ?. buildType !== BuildType . RedisStack && ! isFromCloud && (
122
+ { server ?. buildType !== BuildType . RedisStack && showFields . port && (
113
123
< EuiFlexItem className = { flexItemClassName } >
114
124
< EuiFormRow label = "Port*" helpText = "Should not exceed 65535." >
115
125
< EuiFieldNumber
@@ -136,11 +146,7 @@ const DatabaseForm = (props: Props) => {
136
146
) }
137
147
</ EuiFlexGroup >
138
148
139
- { (
140
- ( ! isEditMode || isCloneMode )
141
- && instanceType !== InstanceType . Sentinel
142
- && connectionType !== ConnectionType . Sentinel
143
- ) && (
149
+ { showFields . alias && (
144
150
< EuiFlexGroup className = { flexGroupClassName } >
145
151
< EuiFlexItem className = { flexItemClassName } >
146
152
< EuiFormRow label = "Database Alias*" >
@@ -179,7 +185,7 @@ const DatabaseForm = (props: Props) => {
179
185
< EuiFlexItem className = { flexItemClassName } >
180
186
< EuiFormRow label = "Password" >
181
187
< EuiFieldPassword
182
- type = { instanceType !== InstanceType . Sentinel ? 'password' : 'dual' }
188
+ type = { passwordType }
183
189
name = "password"
184
190
id = "password"
185
191
data-testid = "password"
@@ -203,7 +209,7 @@ const DatabaseForm = (props: Props) => {
203
209
</ EuiFormRow >
204
210
</ EuiFlexItem >
205
211
206
- { connectionType !== ConnectionType . Sentinel && instanceType !== InstanceType . Sentinel && (
212
+ { showFields . timeout && (
207
213
< EuiFlexItem className = { flexItemClassName } >
208
214
< EuiFormRow label = "Timeout (s)" >
209
215
< EuiFieldNumber
0 commit comments