Skip to content

Commit 1a2cd52

Browse files
authored
Revert "feat: Prevent onChange from firing in TextFields while user is typing via IME (#8519)" (#8554)
This reverts commit 769d725.
1 parent 0ddb394 commit 1a2cd52

File tree

1 file changed

+5
-29
lines changed

1 file changed

+5
-29
lines changed

packages/@react-aria/textfield/src/useTextField.ts

Lines changed: 5 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,15 @@
1111
*/
1212

1313
import {AriaTextFieldProps} from '@react-types/textfield';
14-
import {chain, filterDOMProps, getOwnerWindow, mergeProps, useFormReset} from '@react-aria/utils';
1514
import {DOMAttributes, ValidationResult} from '@react-types/shared';
15+
import {filterDOMProps, getOwnerWindow, mergeProps, useFormReset} from '@react-aria/utils';
1616
import React, {
1717
ChangeEvent,
1818
HTMLAttributes,
1919
type JSX,
2020
LabelHTMLAttributes,
2121
RefObject,
22-
useCallback,
2322
useEffect,
24-
useRef,
2523
useState
2624
} from 'react';
2725
import {useControlledState} from '@react-stately/utils';
@@ -124,20 +122,9 @@ export function useTextField<T extends TextFieldIntrinsicElements = DefaultEleme
124122
isRequired = false,
125123
isReadOnly = false,
126124
type = 'text',
127-
validationBehavior = 'aria',
128-
onChange: onChangeProp
125+
validationBehavior = 'aria'
129126
} = props;
130-
131-
let isComposing = useRef(false);
132-
let onChange = useCallback((val) => {
133-
if (isComposing.current) {
134-
return;
135-
}
136-
137-
onChangeProp?.(val);
138-
}, [onChangeProp]);
139-
140-
let [value, setValue] = useControlledState<string>(props.value, props.defaultValue || '', onChange);
127+
let [value, setValue] = useControlledState<string>(props.value, props.defaultValue || '', props.onChange);
141128
let {focusableProps} = useFocusable<TextFieldHTMLElementType[T]>(props, ref);
142129
let validationState = useFormValidationState({
143130
...props,
@@ -178,17 +165,6 @@ export function useTextField<T extends TextFieldIntrinsicElements = DefaultEleme
178165
}
179166
}, [ref]);
180167

181-
let onCompositionStart = useCallback(() => {
182-
isComposing.current = true;
183-
}, []);
184-
185-
let onCompositionEnd = useCallback((e) => {
186-
isComposing.current = false;
187-
if (e.data !== '') {
188-
onChangeProp?.(value);
189-
}
190-
}, [onChangeProp, value]);
191-
192168
return {
193169
labelProps,
194170
inputProps: mergeProps(
@@ -225,8 +201,8 @@ export function useTextField<T extends TextFieldIntrinsicElements = DefaultEleme
225201
onPaste: props.onPaste,
226202

227203
// Composition events
228-
onCompositionEnd: chain(onCompositionEnd, props.onCompositionEnd),
229-
onCompositionStart: chain(onCompositionStart, props.onCompositionStart),
204+
onCompositionEnd: props.onCompositionEnd,
205+
onCompositionStart: props.onCompositionStart,
230206
onCompositionUpdate: props.onCompositionUpdate,
231207

232208
// Selection events

0 commit comments

Comments
 (0)