Fix @reach/auto-id issue by removing the dependency #1484
Merged
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.
Context
We use the good @reach/auto-id package for assigning a unique id to the month captions. This package is creating warnings with DayPicker and React 18 (e.g. #1478), and with React 17 (reach/reach-ui#921).
Analysis
The source of the package includes some clever code to support both React 17 and the native's
useIdfrom React 18. However, it doesn't play well in the context of a redistributed package like DayPicker.Solution
I copied in
srctheuseIdsource code. Skipped the lines of code that would use React 18'suseId.With this, DayPicker will fallback to the
useEffectsolution – even on React 18. We hopefully will find a better solution in the future.Discarded options:
auto-id. Doesn't seem a much better solution at the burden of maintaining an extra dependency