diff --git a/package.json b/package.json index b584c232..e9da53bf 100755 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "react-number-format", "description": "React component to format number in an input or as a text.", - "version": "5.2.0", + "version": "5.2.1", "main": "dist/react-number-format.cjs.js", "module": "dist/react-number-format.es.js", "types": "types/index.d.ts", diff --git a/src/utils.tsx b/src/utils.tsx index 85cda3ab..4142d882 100644 --- a/src/utils.tsx +++ b/src/utils.tsx @@ -447,7 +447,7 @@ export function useInternalValues( formattedValue = format(numAsString); } else { numAsString = removeFormatting(value, undefined); - formattedValue = value; + formattedValue = format(numAsString); } return { formattedValue, numAsString }; diff --git a/test/library/input.spec.js b/test/library/input.spec.js index 9d32f57d..6de9ab4a 100644 --- a/test/library/input.spec.js +++ b/test/library/input.spec.js @@ -614,6 +614,16 @@ describe('NumberFormat as input', () => { expect(value.innerText).toEqual('1123234512'); }); + it('should try to correct the value if old formatted value is provided but the format prop changes', async () => { + const { input, rerender } = await render( + , + ); + expect(input.value).toEqual('$1,234'); + + await rerender(); + expect(input.value).toEqual('Rs. 1,234'); + }); + describe('Test masking', () => { it('should allow mask as string', () => { const wrapper = mount();