|
1 | | -import React, { ChangeEvent, useEffect, useState } from 'react' |
| 1 | +import React, { ReactNode, useEffect, useState } from 'react' |
2 | 2 | import cx from 'classnames' |
3 | | -import { EuiFieldNumber, EuiIcon, EuiText, EuiTitle } from '@elastic/eui' |
| 3 | +import { EuiIcon, EuiText, EuiTitle } from '@elastic/eui' |
4 | 4 |
|
5 | 5 | import InlineItemEditor from 'uiSrc/components/inline-item-editor/InlineItemEditor' |
6 | 6 |
|
7 | 7 | import { FlexItem, Row } from 'uiSrc/components/base/layout/flex' |
8 | 8 | import { Spacer } from 'uiSrc/components/base/layout/spacer' |
| 9 | +import { NumericInput } from 'uiSrc/components/base/inputs' |
9 | 10 | import styles from './styles.module.scss' |
10 | 11 |
|
11 | 12 | export interface Props { |
@@ -53,12 +54,6 @@ const SettingItem = (props: Props) => { |
53 | 54 | setHovering(false) |
54 | 55 | } |
55 | 56 |
|
56 | | - const onChange = ({ |
57 | | - currentTarget: { value }, |
58 | | - }: ChangeEvent<HTMLInputElement>) => { |
59 | | - isEditing && setValue(validation(value)) |
60 | | - } |
61 | | - |
62 | 57 | const appendEditing = () => |
63 | 58 | !isEditing ? <EuiIcon type="pencil" color="subdued" /> : '' |
64 | 59 |
|
@@ -94,19 +89,20 @@ const SettingItem = (props: Props) => { |
94 | 89 | onDecline={handleDeclineChanges} |
95 | 90 | declineOnUnmount={false} |
96 | 91 | > |
97 | | - <EuiFieldNumber |
98 | | - onChange={onChange} |
99 | | - value={value} |
| 92 | + <NumericInput |
| 93 | + autoValidate |
| 94 | + onChange={(value) => |
| 95 | + isEditing && |
| 96 | + setValue(validation(value ? value.toString() : '')) |
| 97 | + } |
| 98 | + value={Number(value)} |
100 | 99 | placeholder={placeholder} |
101 | 100 | aria-label={testid?.replaceAll?.('-', ' ')} |
| 101 | + append={appendEditing()} |
102 | 102 | className={cx(styles.input, { |
103 | 103 | [styles.inputEditing]: isEditing, |
| 104 | + [styles.inputHover]: isHovering, |
104 | 105 | })} |
105 | | - append={appendEditing()} |
106 | | - fullWidth={false} |
107 | | - compressed |
108 | | - autoComplete="off" |
109 | | - type="text" |
110 | 106 | readOnly={!isEditing} |
111 | 107 | data-testid={`${testid}-input`} |
112 | 108 | /> |
|
0 commit comments