fix: admin/accounts: add user, enter username, add group, enter same username, an invalid 'required' error occurs
Massimo Melina committed
Jan 7, 2023 at 18:23 UTC
609241511d50a3e6a2f54b1ab21aecf2a489f76b
1 file changed
+8
-5
mui-grid-form/src/StringField.ts
+8
-5
@@ -3,7 +3,7 @@ import { FieldProps } from './Form'
3
import { InputAdornment, TextField } from '@mui/material'
4
5
export function StringField({ value, onChange, min, max, required, getApi, typing, start, end, ...props }: FieldProps<string>) {
6
- const setter = () => value ?? ''
6
+ const normalized = value ?? ''
7
getApi?.({
8
getError() {
9
return !value && required ? "required"
@@ -12,10 +12,13 @@ export function StringField({ value, onChange, min, max, required, getApi, typin
12
: false
13
}
14
})
15
- const [state, setState] = useState(setter)
15
+ const [state, setState] = useState(normalized)
16
17
- const lastChange = useRef(value)
18
- useEffect(() => setState(setter), [value]) //eslint-disable-line
17
+ const lastChange = useRef(normalized)
18
+ useEffect(() => {
19
+ setState(normalized)
20
+ lastChange.current = normalized
21
+ }, [normalized])
22
return h(TextField, {
23
fullWidth: true,
24
InputLabelProps: state || props.placeholder ? { shrink: true } : undefined,
@@ -53,7 +56,7 @@ export function StringField({ value, onChange, min, max, required, getApi, typin
56
was: value,
57
event,
58
cancel() {
56
- setState(setter)
59
+ setState(normalized)
60
}
61
})
62
}