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 change
Description of changes
In #3741 we refactored all the Calendar
<span/>
nodes to<button/>
, which was a good change 👍 . However, React invokesonClick
forKeyboardEvent
if thekeyCode
isSPACE
. Since each<button/>
node had anonClick
andonKeyDown
it 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:
ENTER
to invoke the<button/>
then the change is what is in this PR. We need to only invoke theonKeyDown
callbacks if the key wasENTER
.SPACE
to invoke the callback then we can safely remove theonKeyDown
handlers.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
master
that I'll look into but may file separately. I assume the UI updated at one point, but need to check behavior in prior commits.