Hello I am quite a beginner in reactjs.
My current use case is very simple, I have an input field that is to accept a phone number and format it as the user is typing.Unfortunately it turns out that the input fields freezes and refuses to accept further inputs as I start formatting
Here is my code
import { parsePhoneNumberFromString } from 'libphonenumber-js';
export default function UpdatePhoneDetails() {
const [phoneNumber, setPhoneNumber] = useState('');
const updatePhoneNumber = (value) => {
const newPhoneNumber = parsePhoneNumberFromString(value, 'NG');
if (newPhoneNumber) {
const formattedNumber = newPhoneNumber.number;
const valid = newPhoneNumber.isValid();
if (valid) {
setPhoneNumber(formattedNumber); //The input field seems to be freezing here
}
}
};
return (
<TextField
variant="outlined"
required
fullWidth
id="phonenumber"
label="Phone Number"
name="phonenumber"
autoFocus
value={phoneNumber}
defaultValue={phoneNumber}
disabled={updating}
autoComplete="phonenumber"
onChange={(event) => updatePhoneNumber(event.target.value)}
/>
);
}
Thanks for your anticipated help.