Skip to content

Commit 268696d

Browse files
committed
Fix the disableParentheses issue with setFieldValue/setFieldsValue methods
1 parent 9b712ff commit 268696d

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

development/src/ant-phone/index.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@ const PhoneInput = forwardRef(({
131131

132132
const setFieldValue = useCallback((value: PhoneNumber) => {
133133
if (formInstance) formInstance.setFieldValue(namePath, value);
134-
}, [formInstance, namePath])
134+
setValue(getFormattedNumber(getRawValue(value), pattern));
135+
}, [formInstance, namePath, pattern, setValue])
135136

136137
const onKeyDown = useCallback((event: KeyboardEvent<HTMLInputElement>) => {
137138
onKeyDownMaskHandler(event);
@@ -174,12 +175,14 @@ const PhoneInput = forwardRef(({
174175
const metadata = getMetadata(rawValue);
175176
// Skip if value has not been updated by `setFieldValue`.
176177
if (!metadata?.[3] || rawValue === getRawValue(value)) return;
177-
const formattedNumber = getFormattedNumber(rawValue, metadata?.[3] as string);
178+
let pattern = metadata?.[3] || "";
179+
if (disableParentheses) pattern = pattern.replace(/[()]/g, "");
180+
const formattedNumber = getFormattedNumber(rawValue, pattern);
178181
const phoneMetadata = parsePhoneNumber(formattedNumber);
179182
setFieldValue({...phoneMetadata, valid: (strict: boolean) => checkValidity(phoneMetadata, strict)});
180183
setCountryCode(metadata?.[0] as string);
181184
setValue(formattedNumber);
182-
}, [phoneValue, value, setFieldValue, setValue])
185+
}, [phoneValue, value, disableParentheses, setFieldValue, setValue])
183186

184187
useEffect(() => {
185188
if (initiatedRef.current) return;

0 commit comments

Comments
 (0)