-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix - Removed defaultProps from Function Components for React 18.3. #4498
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅ This pull request was sent to the PullRequest network.
@shyk001 you can click here to see the review status or cancel the code review job.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PullRequest Breakdown
Reviewable lines of change
+ 12
- 11
100% JavaScript
Type of change
Fix - These changes are likely to be fixing a bug or issue.
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #4498 +/- ##
=======================================
Coverage 95.39% 95.39%
=======================================
Files 29 29
Lines 2518 2521 +3
Branches 1018 1021 +3
=======================================
+ Hits 2402 2405 +3
Misses 116 116 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this change looks good to me and matching the description regarding addressing the defaultProps
usage
Reviewed with ❤️ by PullRequest
@shyk001 Is the extra const defaultProps = {
popperModifiers: [],
popperProps: {},
hidePopper: true,
};
const alt_props = {
...defaultProps,
...props,
}; |
@reinrl For the second method, I don't think it will work as you intended because the props will overwrite the default_props. const props = {
a: "1qe",
b: "asdf",
c: undefined,
d: {a: "gkgk"},
e: undefined
}
const default_props = {
c: [],
d: {},
e: true,
}
const alt_props = {
...default_props,
...props
}
# alt_props console log result
# { c: undefined, d: { a: 'gkgk' }, e: undefined, a: '1qe', b: 'asdf' } |
@shyk001 good catch - explicitly passing in undefined for any of the props was an edge case that I hadn't considered. Just took me longer than I care to admit to figure out the "why" behind the Boolean type check in your change...and then once I figured it out, I started thinking through other alternatives I have used elsewhere (and your point is a good one that is going to make me revisit some past code elsewhere). |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [react-datepicker](https://github.com/Hacker0x01/react-datepicker) | [`^4.14.0` -> `^6.0.0`](https://renovatebot.com/diffs/npm/react-datepicker/4.25.0/6.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-datepicker/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-datepicker/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-datepicker/4.25.0/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-datepicker/4.25.0/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@types/react-datepicker](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-datepicker) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-datepicker)) | [`^4.11.2` -> `^6.0.0`](https://renovatebot.com/diffs/npm/@types%2freact-datepicker/4.19.6/6.0.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact-datepicker/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact-datepicker/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact-datepicker/4.19.6/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact-datepicker/4.19.6/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>Hacker0x01/react-datepicker (react-datepicker)</summary> ### [`v6.1.0`](https://github.com/Hacker0x01/react-datepicker/releases/tag/v6.1.0): 6.1.0 [Compare Source](https://github.com/Hacker0x01/react-datepicker/compare/v6.0.0...v6.1.0) #### What's Changed - Fix - Removed defaultProps from Function Components for React 18.3. by [@​shyk001](https://github.com/shyk001) in [https://github.com/Hacker0x01/react-datepicker/pull/4498](https://github.com/Hacker0x01/react-datepicker/pull/4498) #### New Contributors - [@​shyk001](https://github.com/shyk001) made their first contribution in [https://github.com/Hacker0x01/react-datepicker/pull/4498](https://github.com/Hacker0x01/react-datepicker/pull/4498) **Full Changelog**: Hacker0x01/react-datepicker@v6.0.0...v6.1.0 ### [`v6.0.0`](https://github.com/Hacker0x01/react-datepicker/releases/tag/v6.0.0): 6.0.0 [Compare Source](https://github.com/Hacker0x01/react-datepicker/compare/v5.1.0...v6.0.0) #### What's Changed - Upgrade date-fns to v3 by [@​ethanve](https://github.com/ethanve) in [https://github.com/Hacker0x01/react-datepicker/pull/4481](https://github.com/Hacker0x01/react-datepicker/pull/4481) - Switch workflows to Node 20 by [@​martijnrusschen](https://github.com/martijnrusschen) in [https://github.com/Hacker0x01/react-datepicker/pull/4490](https://github.com/Hacker0x01/react-datepicker/pull/4490) #### New Contributors - [@​ethanve](https://github.com/ethanve) made their first contribution in [https://github.com/Hacker0x01/react-datepicker/pull/4481](https://github.com/Hacker0x01/react-datepicker/pull/4481) **Full Changelog**: Hacker0x01/react-datepicker@v5.1.0...v6.0.0 ### [`v5.1.0`](https://github.com/Hacker0x01/react-datepicker/releases/tag/v5.1.0): 5.1.0 [Compare Source](https://github.com/Hacker0x01/react-datepicker/compare/v5.0.0...v5.1.0) #### What's Changed - Fix options passed to date-fns/parse by [@​emilecantin](https://github.com/emilecantin) in [https://github.com/Hacker0x01/react-datepicker/pull/4474](https://github.com/Hacker0x01/react-datepicker/pull/4474) **Full Changelog**: Hacker0x01/react-datepicker@v5.0.0...v5.1.0 ### [`v5.0.0`](https://github.com/Hacker0x01/react-datepicker/releases/tag/v5.0.0): 5.0.0 [Compare Source](https://github.com/Hacker0x01/react-datepicker/compare/v4.25.0...v5.0.0) #### Breaking changes - Migrate from Popper.js to Floating-UI by [@​G07cha](https://github.com/G07cha) in [https://github.com/Hacker0x01/react-datepicker/pull/4393](https://github.com/Hacker0x01/react-datepicker/pull/4393) #### What's Changed - 🐛 FIX: readability-isMonthinRange by [@​mary139](https://github.com/mary139) in [https://github.com/Hacker0x01/react-datepicker/pull/4421](https://github.com/Hacker0x01/react-datepicker/pull/4421) - Fix [#​4431](https://github.com/Hacker0x01/react-datepicker/issues/4431): Update the excludedDate to match the year to check of the isYearDisabled by [@​balajis-qb](https://github.com/balajis-qb) in [https://github.com/Hacker0x01/react-datepicker/pull/4432](https://github.com/Hacker0x01/react-datepicker/pull/4432) - Fix [#​4420](https://github.com/Hacker0x01/react-datepicker/issues/4420): Update home key and end key navigation in Calendar component by [@​balajis-qb](https://github.com/balajis-qb) in [https://github.com/Hacker0x01/react-datepicker/pull/4430](https://github.com/Hacker0x01/react-datepicker/pull/4430) - Document [#​4420](https://github.com/Hacker0x01/react-datepicker/issues/4420): 📝 Update the behavior of Home Key and End Key in the README file by [@​balajis-qb](https://github.com/balajis-qb) in [https://github.com/Hacker0x01/react-datepicker/pull/4438](https://github.com/Hacker0x01/react-datepicker/pull/4438) - Fix [#​4076](https://github.com/Hacker0x01/react-datepicker/issues/4076): Trigger onCalendarClose event and onChange even when the same date is selected as the start and the end date in a date range by [@​balajis-qb](https://github.com/balajis-qb) in [https://github.com/Hacker0x01/react-datepicker/pull/4394](https://github.com/Hacker0x01/react-datepicker/pull/4394) - Excluded dates message by [@​dvelazquez1282](https://github.com/dvelazquez1282) in [https://github.com/Hacker0x01/react-datepicker/pull/4437](https://github.com/Hacker0x01/react-datepicker/pull/4437) - Fix [#​4456](https://github.com/Hacker0x01/react-datepicker/issues/4456): Add shift+pageUp key and shift+pageDown key navigation in Calendar component by [@​balajis-qb](https://github.com/balajis-qb) in [https://github.com/Hacker0x01/react-datepicker/pull/4457](https://github.com/Hacker0x01/react-datepicker/pull/4457) - Fix options passed to date-fns/format by [@​emilecantin](https://github.com/emilecantin) in [https://github.com/Hacker0x01/react-datepicker/pull/4469](https://github.com/Hacker0x01/react-datepicker/pull/4469) #### New Contributors - [@​mary139](https://github.com/mary139) made their first contribution in [https://github.com/Hacker0x01/react-datepicker/pull/4421](https://github.com/Hacker0x01/react-datepicker/pull/4421) - [@​G07cha](https://github.com/G07cha) made their first contribution in [https://github.com/Hacker0x01/react-datepicker/pull/4393](https://github.com/Hacker0x01/react-datepicker/pull/4393) - [@​dvelazquez1282](https://github.com/dvelazquez1282) made their first contribution in [https://github.com/Hacker0x01/react-datepicker/pull/4437](https://github.com/Hacker0x01/react-datepicker/pull/4437) - [@​emilecantin](https://github.com/emilecantin) made their first contribution in [https://github.com/Hacker0x01/react-datepicker/pull/4469](https://github.com/Hacker0x01/react-datepicker/pull/4469) **Full Changelog**: Hacker0x01/react-datepicker@v4.25.0...v5.0.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/ASVGay/the-rhapsodies). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2In0=-->
As of react 18.3, a warning will be displayed when using defaultProps inside a function component. Therefore, I have removed the defaultProps used in the function component.
Fix #4477