fix: ensure modifiers honor the timeZone prop
#2849
Merged
+399
−15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes the bug reported by @lovebuizel in #2833, where the dates passed to the modifiers are not converted into the proper time-zone set via the
timeZoneprop.To fix the bug, I first reproduced it with Jest. I added a
test:tznpm script that runs tests underAustralia/Adelaide(GMT+1100) and a regression inexamples/timezone/TestCase2833.test.tsxwhere the desired timezone is 12 hours behind, e.g.Etc/GMT+12, to hit the “current date differs from timezone date” case.After seeing the failure, I added
convertMatchersToTimeZoneandtoTimeZoneutilities to ensure all dates in modifier matchers (modifiers,disabled,hidden) are converted to the requestedtimeZoneinsideDayPicker.toTimeZonealso checks whether incoming dates are already time-zoned, which should also help with the performance issues discussed in #2845.