๐ Fixes
- Fix
useFormStateandControllerunnecessarily cloning form state during mount and unmount (#13945) - Fix
setValuesnot updating dirty state for unregistered fields (#13946) - Fix form state values becoming inconsistent (#13948)
- Fix
setValuenot selecting checkbox options with empty string values (#13950) - Fix stale asynchronous form-level validation results (#13951, #13954)
- Fix
useFieldArrayapplyingreValidateMode: 'onSubmit'before submission (#13952) - Fix default values not being applied correctly to selects with disabled optgroups (#13953)
- Fix
useControllerreading staleshouldUnregisteroptions (#13956, #13996) - Fix focusing disabled radio and checkbox inputs (#13960, #13968, #13977)
- Fix TypeScript type regression (#13963)
- Fix field array notifications using stale values (#13965)
- Fix rejected submission callbacks with falsy rejection reasons (#13967)
- Fix
useWatchmissingreset()updates on mount in React Native (#13974) - Fix
triggerlosing nested field array root errors (#13975) - Fix
unregisterretaining descendant registrations when removing a parent (#13976) - Fix
triggernot marking nested fields as touched whenshouldTouchtargets a parent (#13978) - Fix
useWatchcompute cache not synchronizing whencomputeis removed (#13987) - Fix
setValuesignoring options when values remain unchanged (#13989) - Fix
handleSubmitincorrectly updating form state afterreset()during asynchronous callbacks (#13991) - Fix
useFieldArrayretaining validation rules after the rules prop is removed (#13992) - Fix
resetnot updatingisValidafter cancelling pending validation (#13994) - Fix TypeScript nested array paths not preserving
undefined(#13995) - Fix
<Form />not respectingencTypewhen constructing request bodies (#13997) - Fix
handleSubmitnot supporting nullish and primitive transformed values with disabled fields (#13999, #14011) - Fix
useControllerdirty tracking with controller-leveldefaultValue(#14001) - Fix multi-select changes including disabled options (#14002)
- Fix
registeroverwriting untouched range and color input defaults (#14007) - Fix stale schema resolver errors after field array operations (#14008)
- Fix
unsetfailing on primitive values (#14014) - Fix form-level validation errors appearing before submission during
isValidchecks (#14015) - Fix stale field errors when form-level validation returns a message (#14016)
- Fix repeated
reset()calls and error focusing withkeepFieldsRefand memoized inputs (#14023)
โก Performance Improvements
- Avoid unnecessary form state cloning in
useFormStateandController(#13945)
๐งน Refactors
- Skip non-dirty array holes when collecting dirty field names (#13979)
- Avoid mutating field metadata when building resolver options (#13984)
๐งช Tests
- Expand regression coverage for
reset,useController,useFieldArray, validation, dirty state and form submissions - Add regression coverage for disabled radio and checkbox inputs, React Native reset handling, and primitive transformed values
๐ฆ Dependencies
- Bump
fast-urifrom 3.1.8 to 3.1.9 (#13949) - Bump
follow-redirectsfrom 1.16.1 to 1.16.2 (#13985) - Bump
vitefrom 6.4.4 to 6.4.5 (#13983) - Bump
joifrom 18.2.9 to 18.3.1 (#13986)
โค๏ธ Thank You
Thanks to @charan-rathore, @clean99, @KooYS, @dfedoryshchev, @maxymlyskov, @aumilkyeong, @hamarshehmhmd, @zigzagdev, @wozhenbang2004, @Aminark, @zendesk-robryan, @MomenSherif, @Shellghostt, @SatyamGangani, @yxshee, @timsnadden and @bluebill1049 for their contributions! ๐
Special thanks to the Pennylane team for their incredible support! โค๏ธ