Skip to content

Commit 4386f64

Browse files
committed
implement the NumericInput for database form
1 parent e068f95 commit 4386f64

File tree

2 files changed

+19
-35
lines changed

2 files changed

+19
-35
lines changed

redisinsight/ui/src/components/input-field-sentinel/InputFieldSentinel.tsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import {
22
EuiFieldText,
33
EuiIcon,
4-
EuiFieldNumber,
54
} from '@elastic/eui'
65
import { omit } from 'lodash'
76
import React, { useState } from 'react'
87
import cx from 'classnames'
98
import { useDebouncedEffect } from 'uiSrc/services'
109
import { validateNumber } from 'uiSrc/utils'
11-
import { PasswordInput } from 'uiSrc/components/base/inputs'
10+
import { NumericInput, PasswordInput } from 'uiSrc/components/base/inputs'
1211

1312
import styles from './styles.module.scss'
1413

@@ -76,12 +75,10 @@ const InputFieldSentinel = (props: Props) => {
7675
/>
7776
)}
7877
{inputType === SentinelInputFieldType.Number && (
79-
<EuiFieldNumber
78+
<NumericInput
8079
{...clearProp}
81-
compressed
82-
type="text"
8380
value={value}
84-
onChange={(e) => handleChange(validateNumber(e.target?.value))}
81+
onChange={(value) => handleChange(validateNumber(value))}
8582
data-testid="sentinel-input-number"
8683
/>
8784
)}

redisinsight/ui/src/pages/home/components/form/DatabaseForm.tsx

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { useSelector } from 'react-redux'
33
import { FormikProps } from 'formik'
44

55
import {
6-
EuiFieldNumber,
76
EuiFieldText,
87
EuiIcon,
98
EuiToolTip,
@@ -17,13 +16,11 @@ import {
1716
MAX_TIMEOUT_NUMBER,
1817
selectOnFocus,
1918
validateField,
20-
validatePortNumber,
21-
validateTimeoutNumber,
2219
} from 'uiSrc/utils'
2320
import { DbConnectionInfo } from 'uiSrc/pages/home/interfaces'
2421
import { FlexItem, Row } from 'uiSrc/components/base/layout/flex'
2522
import { FormField } from 'uiSrc/components/base/forms/FormField'
26-
import { PasswordInput } from 'uiSrc/components/base/inputs'
23+
import { NumericInput, PasswordInput } from 'uiSrc/components/base/inputs'
2724

2825
interface IShowFields {
2926
alias: boolean
@@ -146,25 +143,22 @@ const DatabaseForm = (props: Props) => {
146143
)}
147144
{isShowPort && (
148145
<FlexItem grow={2}>
149-
<FormField label="Port*" additionalText="Should not exceed 65535.">
150-
<EuiFieldNumber
146+
<FormField
147+
label="Port*"
148+
additionalText={`Should not exceed ${MAX_PORT_NUMBER}.`}
149+
>
150+
<NumericInput
151+
autoValidate
151152
name="port"
152153
id="port"
153154
data-testid="port"
154-
style={{ width: '100%' }}
155155
placeholder="Enter Port"
156-
value={formik.values.port ?? ''}
157-
maxLength={6}
158-
onChange={(e: ChangeEvent<HTMLInputElement>) => {
159-
formik.setFieldValue(
160-
e.target.name,
161-
validatePortNumber(e.target.value.trim()),
162-
)
163-
}}
164-
onFocus={selectOnFocus}
165-
type="text"
156+
onChange={(value) => formik.setFieldValue('port', value)}
157+
defaultValue={6379}
158+
value={Number(formik.values.port)}
166159
min={0}
167160
max={MAX_PORT_NUMBER}
161+
onFocus={selectOnFocus}
168162
disabled={isFieldDisabled('port')}
169163
/>
170164
</FormField>
@@ -220,24 +214,17 @@ const DatabaseForm = (props: Props) => {
220214
<Row gap="m" responsive>
221215
<FlexItem grow>
222216
<FormField label="Timeout (s)">
223-
<EuiFieldNumber
217+
<NumericInput
218+
autoValidate
224219
name="timeout"
225220
id="timeout"
226221
data-testid="timeout"
227-
style={{ width: '100%' }}
228222
placeholder="Enter Timeout (in seconds)"
229-
value={formik.values.timeout ?? ''}
230-
maxLength={7}
231-
onChange={(e: ChangeEvent<HTMLInputElement>) => {
232-
formik.setFieldValue(
233-
e.target.name,
234-
validateTimeoutNumber(e.target.value.trim()),
235-
)
236-
}}
237-
onFocus={selectOnFocus}
238-
type="text"
223+
onChange={(value) => formik.setFieldValue('timeout', value)}
224+
value={Number(formik.values.timeout)}
239225
min={1}
240226
max={MAX_TIMEOUT_NUMBER}
227+
onFocus={selectOnFocus}
241228
disabled={isFieldDisabled('timeout')}
242229
/>
243230
</FormField>

0 commit comments

Comments
 (0)