sandstone icon indicating copy to clipboard operation
sandstone copied to clipboard

WRQ-31515: Fixed Scroller, Slider, VirtualList and VirtualGridList to set prop value to default when undefined is passed for the prop value

Open juwonjeong opened this issue 6 months ago • 1 comments

Enact-DCO-1.0-Signed-off-by: Juwon Jeong ([email protected])

Checklist

  • [x] I have read and understand the contribution guide
  • [x] A CHANGELOG entry is included
  • [ ] At least one test case is included for this feature or bug fix
  • [x] Documentation was added or is not needed
  • [ ] This is an API breaking change

Issue Resolved / Feature Added

In https://github.com/enactjs/sandstone/pull/1613, we removed defaultProps and implemeted this feature manually. After this implementation, if undefined is passed for a prop value, the prop value remains undefined. However, defaultProps(https://legacy.reactjs.org/docs/typechecking-with-proptypes.html#default-prop-values) sets prop value to default value when undefined value is passed for the prop.

Resolution

Fix Scroller, Slider, VirtualList and VirtualGridList to set prop value to default value when undefined is passed for the prop value

Additional Considerations

  • I checked React's defaultProps for falsy values(null, undefined, false, NaN, 0, -0, "") and found that it sets the prop value to its default value only when undefined is passed. https://react.dev/reference/react/Component#static-defaultprops

  • I found that the default value of wheelInterval in controls of Slider sampler was not loading properly. So I fixed it in this PR. https://github.com/enactjs/sandstone/compare/develop...feature/WRQ-31515-develop?expand=1#diff-4f80023ae6bb7b165147824d15263e1a011ab278fdf4a5f6ddbea07fecca1a31R471

Links

WRQ-31515

Comments

juwonjeong avatar Aug 20 '24 01:08 juwonjeong