Fix Calendar component PREV/NEXT month, year, and "Go to today" handlers firing twice #4662
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.
Pull request checklist
$ npm run changeDescription of changes
In #3741 we refactored all the Calendar
<span/>nodes to<button/>, which was a good change 👍 . However, React invokesonClickforKeyboardEventif thekeyCodeisSPACE. Since each<button/>node had anonClickandonKeyDownit would invoke the PREV/NEXT month, year, and also "Go to today" callbacks twice.Solution Options:
I went with # 1, but there's an alternative solution:
ENTERto invoke the<button/>then the change is what is in this PR. We need to only invoke theonKeyDowncallbacks if the key wasENTER.SPACEto invoke the callback then we can safely remove theonKeyDownhandlers.Since # 2 would would change prior behavior so I left went with option # 1.
Focus areas to test
Note: that the UI doesn't update when "Go to today" is invoked. Looks like a preexisting bug on
masterthat I'll look into but may file separately. I assume the UI updated at one point, but need to check behavior in prior commits.