@@ -6,8 +6,10 @@ import { Nullable, selectOnFocus } from 'uiSrc/utils'
6
6
import Divider from 'uiSrc/components/divider/Divider'
7
7
import { DatabaseForm , DbCompressor , DbIndex , TlsDetails } from 'uiSrc/pages/home/components/form'
8
8
import { DbConnectionInfo } from 'uiSrc/pages/home/interfaces'
9
+ import { ManualFormTab } from '../constants'
9
10
10
11
export interface Props {
12
+ activeTab : ManualFormTab
11
13
isCloneMode : boolean
12
14
formik : FormikProps < DbConnectionInfo >
13
15
onKeyDown : ( event : React . KeyboardEvent < HTMLFormElement > ) => void
@@ -19,6 +21,7 @@ export interface Props {
19
21
20
22
const EditSentinelConnection = ( props : Props ) => {
21
23
const {
24
+ activeTab,
22
25
isCloneMode,
23
26
formik,
24
27
onKeyDown,
@@ -28,94 +31,95 @@ const EditSentinelConnection = (props: Props) => {
28
31
db
29
32
} = props
30
33
34
+ const GeneralFormClodeMode = (
35
+ < >
36
+ < PrimaryGroupSentinel
37
+ formik = { formik }
38
+ />
39
+ < Divider colorVariable = "separatorColor" variant = "fullWidth" className = "form__divider" />
40
+ < EuiTitle size = "xs" > < span > Datababase</ span > </ EuiTitle >
41
+ < EuiSpacer size = "s" />
42
+ < SentinelMasterDatabase
43
+ formik = { formik }
44
+ db = { db }
45
+ isCloneMode = { isCloneMode }
46
+ />
47
+ < Divider colorVariable = "separatorColor" variant = "fullWidth" className = "form__divider" />
48
+ < EuiTitle size = "xs" > < span > Sentinel</ span > </ EuiTitle >
49
+ < EuiSpacer size = "s" />
50
+ < DatabaseForm
51
+ formik = { formik }
52
+ showFields = { { host : true , port : true , alias : false , timeout : false } }
53
+ onHostNamePaste = { onHostNamePaste }
54
+ />
55
+ < Divider colorVariable = "separatorColor" variant = "fullWidth" className = "form__divider" />
56
+ < DbIndex
57
+ formik = { formik }
58
+ />
59
+ </ >
60
+ )
61
+
62
+ const GeneralFormEditMode = (
63
+ < >
64
+ < EuiFlexGroup responsive = { false } >
65
+ < EuiFlexItem >
66
+ < EuiFormRow label = "Database Alias*" >
67
+ < EuiFieldText
68
+ fullWidth
69
+ name = "name"
70
+ id = "name"
71
+ data-testid = "name"
72
+ placeholder = "Enter Database Alias"
73
+ onFocus = { selectOnFocus }
74
+ value = { formik . values . name ?? '' }
75
+ maxLength = { 500 }
76
+ onChange = { formik . handleChange }
77
+ />
78
+ </ EuiFormRow >
79
+ </ EuiFlexItem >
80
+ </ EuiFlexGroup >
81
+ < EuiSpacer size = "s" />
82
+ < Divider colorVariable = "separatorColor" variant = "fullWidth" className = "form__divider" />
83
+ < EuiTitle size = "xs" > < span > Datababase</ span > </ EuiTitle >
84
+ < EuiSpacer size = "s" />
85
+ < SentinelMasterDatabase
86
+ formik = { formik }
87
+ db = { db }
88
+ isCloneMode = { isCloneMode }
89
+ />
90
+ < Divider colorVariable = "separatorColor" variant = "fullWidth" className = "form__divider" />
91
+ < EuiTitle size = "xs" > < span > Sentinel</ span > </ EuiTitle >
92
+ < EuiSpacer size = "s" />
93
+ < DatabaseForm
94
+ formik = { formik }
95
+ showFields = { { host : false , port : true , alias : false , timeout : false } }
96
+ onHostNamePaste = { onHostNamePaste }
97
+ />
98
+ </ >
99
+ )
100
+
31
101
return (
32
102
< EuiForm
33
103
component = "form"
34
104
onSubmit = { formik . handleSubmit }
35
105
data-testid = "form"
36
106
onKeyDown = { onKeyDown }
37
107
>
38
- { ! isCloneMode && (
39
- < >
40
- < EuiFlexGroup responsive = { false } >
41
- < EuiFlexItem >
42
- < EuiFormRow label = "Database Alias*" >
43
- < EuiFieldText
44
- fullWidth
45
- name = "name"
46
- id = "name"
47
- data-testid = "name"
48
- placeholder = "Enter Database Alias"
49
- onFocus = { selectOnFocus }
50
- value = { formik . values . name ?? '' }
51
- maxLength = { 500 }
52
- onChange = { formik . handleChange }
53
- />
54
- </ EuiFormRow >
55
- </ EuiFlexItem >
56
- </ EuiFlexGroup >
57
- < EuiSpacer size = "s" />
58
- < Divider colorVariable = "separatorColor" variant = "fullWidth" className = "form__divider" />
59
- < EuiTitle size = "xs" > < span > Datababase</ span > </ EuiTitle >
60
- < EuiSpacer size = "s" />
61
- < SentinelMasterDatabase
62
- formik = { formik }
63
- db = { db }
64
- isCloneMode = { isCloneMode }
65
- />
66
-
67
- < Divider colorVariable = "separatorColor" variant = "fullWidth" className = "form__divider" />
68
- < EuiTitle size = "xs" > < span > Sentinel</ span > </ EuiTitle >
69
- < EuiSpacer size = "s" />
70
- < DatabaseForm
71
- formik = { formik }
72
- showFields = { { host : false , port : true , alias : false , timeout : false } }
73
- onHostNamePaste = { onHostNamePaste }
74
- />
75
- < Divider colorVariable = "separatorColor" variant = "fullWidth" className = "form__divider" />
76
- < TlsDetails
77
- formik = { formik }
78
- certificates = { certificates }
79
- caCertificates = { caCertificates }
80
- />
81
- </ >
108
+ { activeTab === ManualFormTab . General && (
109
+ < > { isCloneMode ? GeneralFormClodeMode : GeneralFormEditMode } </ >
110
+ ) }
111
+ { activeTab === ManualFormTab . Security && (
112
+ < TlsDetails
113
+ formik = { formik }
114
+ certificates = { certificates }
115
+ caCertificates = { caCertificates }
116
+ />
82
117
) }
83
- { isCloneMode && (
84
- < >
85
- < PrimaryGroupSentinel
86
- formik = { formik }
87
- />
88
- < Divider colorVariable = "separatorColor" variant = "fullWidth" className = "form__divider" />
89
- < EuiTitle size = "xs" > < span > Datababase</ span > </ EuiTitle >
90
- < EuiSpacer size = "s" />
91
- < SentinelMasterDatabase
92
- formik = { formik }
93
- db = { db }
94
- isCloneMode = { isCloneMode }
95
- />
96
- < Divider colorVariable = "separatorColor" variant = "fullWidth" className = "form__divider" />
97
- < EuiTitle size = "xs" > < span > Sentinel</ span > </ EuiTitle >
98
- < EuiSpacer size = "s" />
99
- < DatabaseForm
100
- formik = { formik }
101
- showFields = { { host : true , port : true , alias : false , timeout : false } }
102
- onHostNamePaste = { onHostNamePaste }
103
- />
104
- < Divider colorVariable = "separatorColor" variant = "fullWidth" className = "form__divider" />
105
- < DbIndex
106
- formik = { formik }
107
- />
108
- < Divider colorVariable = "separatorColor" variant = "fullWidth" className = "form__divider" />
109
- < DbCompressor
110
- formik = { formik }
111
- />
112
- < Divider colorVariable = "separatorColor" variant = "fullWidth" className = "form__divider" />
113
- < TlsDetails
114
- formik = { formik }
115
- certificates = { certificates }
116
- caCertificates = { caCertificates }
117
- />
118
- </ >
118
+
119
+ { activeTab === ManualFormTab . Decompression && (
120
+ < DbCompressor
121
+ formik = { formik }
122
+ />
119
123
) }
120
124
</ EuiForm >
121
125
)
0 commit comments