diff --git a/packages/x-date-pickers/src/internals/hooks/useMaskedInput.tsx b/packages/x-date-pickers/src/internals/hooks/useMaskedInput.tsx index 98611bfe7b05..7092865d628b 100644 --- a/packages/x-date-pickers/src/internals/hooks/useMaskedInput.tsx +++ b/packages/x-date-pickers/src/internals/hooks/useMaskedInput.tsx @@ -91,7 +91,13 @@ export const useMaskedInput = ({ const isAcceptedValue = value === null || utils.isValid(value); - if (!localeHasChanged && (!isAcceptedValue || utils.isEqual(innerInputValue, value))) { + const innerEqualsProvided = + innerInputValue === null + ? value === null + : value !== null && + Math.abs(utils.getDiff(innerInputValue, value, 'seconds')) === 0; + + if (!localeHasChanged && (!isAcceptedValue || innerEqualsProvided)) { return; } @@ -124,11 +130,11 @@ export const useMaskedInput = ({ const inputStateArgs = shouldUseMaskedInput ? rifmProps : { - value: innerDisplayedInputValue, - onChange: (event: React.ChangeEvent) => { - handleChange(event.currentTarget.value); - }, - }; + value: innerDisplayedInputValue, + onChange: (event: React.ChangeEvent) => { + handleChange(event.currentTarget.value); + }, + }; return { label,