Skip to content

Commit c76c484

Browse files
authored
fix: support full width characters in Numberfield e.g. Japanese IME (#8418)
1 parent c3afbc4 commit c76c484

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

packages/@internationalized/number/src/NumberParser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ interface Symbols {
2323
}
2424

2525
const CURRENCY_SIGN_REGEX = new RegExp('^.*\\(.*\\).*$');
26-
const NUMBERING_SYSTEMS = ['latn', 'arab', 'hanidec', 'deva', 'beng'];
26+
const NUMBERING_SYSTEMS = ['latn', 'arab', 'hanidec', 'deva', 'beng', 'fullwide'];
2727

2828
/**
2929
* A NumberParser can be used to perform locale-aware parsing of numbers from Unicode strings,

packages/@react-aria/numberfield/src/useNumberField.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,10 @@ export function useNumberField(props: AriaNumberFieldProps, state: NumberFieldSt
183183

184184
let domProps = filterDOMProps(props);
185185
let onKeyDownEnter = useCallback((e) => {
186+
if (e.nativeEvent.isComposing) {
187+
return;
188+
}
189+
186190
if (e.key === 'Enter') {
187191
commit();
188192
commitValidation();

packages/@react-aria/spinbutton/src/useSpinButton.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,13 @@ export function useSpinButton(
5959

6060
const clearAsync = () => clearTimeout(_async.current);
6161

62-
62+
6363
useEffect(() => {
6464
return () => clearAsync();
6565
}, []);
6666

6767
let onKeyDown = (e) => {
68-
if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || isReadOnly) {
68+
if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || isReadOnly || e.nativeEvent.isComposing) {
6969
return;
7070
}
7171

0 commit comments

Comments
 (0)