|
11 | 11 | */
|
12 | 12 |
|
13 | 13 | import {AriaTextFieldProps} from '@react-types/textfield';
|
14 |
| -import {chain, filterDOMProps, getOwnerWindow, mergeProps, useFormReset} from '@react-aria/utils'; |
15 | 14 | import {DOMAttributes, ValidationResult} from '@react-types/shared';
|
| 15 | +import {filterDOMProps, getOwnerWindow, mergeProps, useFormReset} from '@react-aria/utils'; |
16 | 16 | import React, {
|
17 | 17 | ChangeEvent,
|
18 | 18 | HTMLAttributes,
|
19 | 19 | type JSX,
|
20 | 20 | LabelHTMLAttributes,
|
21 | 21 | RefObject,
|
22 |
| - useCallback, |
23 | 22 | useEffect,
|
24 |
| - useRef, |
25 | 23 | useState
|
26 | 24 | } from 'react';
|
27 | 25 | import {useControlledState} from '@react-stately/utils';
|
@@ -124,20 +122,9 @@ export function useTextField<T extends TextFieldIntrinsicElements = DefaultEleme
|
124 | 122 | isRequired = false,
|
125 | 123 | isReadOnly = false,
|
126 | 124 | type = 'text',
|
127 |
| - validationBehavior = 'aria', |
128 |
| - onChange: onChangeProp |
| 125 | + validationBehavior = 'aria' |
129 | 126 | } = 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); |
141 | 128 | let {focusableProps} = useFocusable<TextFieldHTMLElementType[T]>(props, ref);
|
142 | 129 | let validationState = useFormValidationState({
|
143 | 130 | ...props,
|
@@ -178,17 +165,6 @@ export function useTextField<T extends TextFieldIntrinsicElements = DefaultEleme
|
178 | 165 | }
|
179 | 166 | }, [ref]);
|
180 | 167 |
|
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 |
| - |
192 | 168 | return {
|
193 | 169 | labelProps,
|
194 | 170 | inputProps: mergeProps(
|
@@ -225,8 +201,8 @@ export function useTextField<T extends TextFieldIntrinsicElements = DefaultEleme
|
225 | 201 | onPaste: props.onPaste,
|
226 | 202 |
|
227 | 203 | // Composition events
|
228 |
| - onCompositionEnd: chain(onCompositionEnd, props.onCompositionEnd), |
229 |
| - onCompositionStart: chain(onCompositionStart, props.onCompositionStart), |
| 204 | + onCompositionEnd: props.onCompositionEnd, |
| 205 | + onCompositionStart: props.onCompositionStart, |
230 | 206 | onCompositionUpdate: props.onCompositionUpdate,
|
231 | 207 |
|
232 | 208 | // Selection events
|
|
0 commit comments