-
Notifications
You must be signed in to change notification settings - Fork 42
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
[Datepicker] Bumped react-day-picker
to v9.
#3525
base: main
Are you sure you want to change the base?
Conversation
🦋 Changeset detectedLatest commit: a5c33f5 The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Storybook demo / Chromatic📝 Changes to review: 13918aeaa8 | 91 components | 135 stories |
Thanks for pinging your PR and the feedback here. I don’t often get the chance to see how the react-day-picker is used in real-world scenarios 👀 Sorry to hear that upgrading to DayPicker 9 has been such a difficult task. If you have a moment, please share your main pain points with other devs and maintainers. That would be a huge help! |
Description
As a result users will now not get peer-dependency warnings when running
npm install
sincerdp
v9 hasreact: ">= 16.8.0"
setWhile the upgrade-guide doesn't look that bad: https://daypicker.dev/upgrading, this major-update came with a bunch of small undocumented changes and gotchas 😭 In the end it turned into a refactor of most of our Datepicker and MonthPicker-code. While it looks like a lot has been done, most of the touched files are just small refactors like renaming and re-structuring.
Steps taken to ensure backwards compat and no breaking changes
Highlights
fixedWeeks
set/context
-dir code is now co-located and use our owncreateContext
-util where possibleclamp-dates
to make sure shown month/year is never "outside" the possible view./utils
->/date-utils
for clarityDatePicker.test.stories.tsx
andMonthPicker.test.stories.tsx
for testing code while refactoring.rdp
. The major updated how all of these worked so needed to be built from scratch. Notice that they now haveuseCallback
when used to avoid re-renders.ReactDayPicker
component itself to be re-used between standalone and dialog-versionreact-day-picker
, some utilities have been extractedMonthPicker
Component could no longer use old utilities from
rdp
. We didn't use it for much before anyways, so features were extracted and replicated locally.Component Checklist 📝
@navikt/core/css/config/_mappings.js
)@navikt/core/css/tokens.json
)@navikt/aksel-stylelint/src/deprecations.ts
)@navikt/core/react/src/index.ts
and@navikt/core/react/package.json
)@navikt/core/css/index.css
)<Component>: <gitmoji?> <Text>.
E.g. "Button: ✨ Add feature xyz.")