Skip to content
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

[0.66] Don't override key presses "Space"/"Enter" to perform onClick in RCTV… #972

Merged
merged 3 commits into from
Jan 27, 2022

Conversation

Saadnajmi
Copy link
Collaborator

@Saadnajmi Saadnajmi commented Jan 19, 2022

Cherry pick #941 into 0.66-Stable

Please select one of the following

  • I am removing an existing difference between facebook/react-native and microsoft/react-native-macos 👍
  • I am cherry-picking a change from Facebook's react-native into microsoft/react-native-macos 👍
  • I am making a fix / change for the macOS implementation of react-native
  • I am making a change required for Microsoft usage of react-native

Summary

When we added keyboarding support to react-native-macos, we set it so that if 'Space' or 'Enter' was pressed while an RCTView is in focus, it would perform the onClick handler. This causes a few problems, namely, there's no way to override this in JS. If you only wanted onClick to fire onKeyUp instead of onKeyDown, you have no way to do that.

We seemingly did this because the original Keyboarding API proposal wanted basic defaults on JS components. If we look closer at the API proposal however, it actually says we should provide defaults for Button / Touchable / Pressable, not View. I am in favor of not having defaults on View, which should be a primitive and make no assumptions.

Unfortunately, I don't have an easy way to set defaults on, say, Pressable ( (Space/Enter to activate onPress) because then I have to override validKeys(Up|Down), which means that the developer can't override any other keys. This is a limitation of our implementation of keyboarding on react-native-macos, so I'll leave changing that / settings defaults on Pressable as outside this review.

Changelog

[macOS] [Removed] - Removed 'Space'/'Enter' keypresses calling onClick by default.

Test Plan

In a separate repo (FluentUI Raect Native), I locally commented out this code and fixed my issue where I wanted to override onKeyUp and not onKeyDown.

…iew (microsoft#941)

* add pull yml

* match handleOpenURLNotification event payload with iOS (microsoft#755) (#2)

Co-authored-by: Ryan Linton <[email protected]>

* [pull] master from microsoft:master (#11)

* Deprecated api (microsoft#853)

* Remove deprecated/unused context param
* Update a few Mac deprecated APIs

* Packing RN dependencies, hermes and ignoring javadoc failure,  (microsoft#852)

* Ignore javadoc failure

* Bringing few more changes from 0.63-stable

* Fixing a patch in engine selection

* Fixing a patch in nuget spec

* Fixing the output directory of nuget pack

* Packaging dependencies in the nuget

* Fix onMouseEnter/onMouseLeave callbacks not firing on Pressable (microsoft#855)

* add pull yml

* match handleOpenURLNotification event payload with iOS (microsoft#755) (#2)

Co-authored-by: Ryan Linton <[email protected]>

* fix mouse evetns on pressable

* delete extra yml from this branch

* Add macOS tags

* reorder props to have onMouseEnter/onMouseLeave always be before onPress

Co-authored-by: pull[bot] <39814207+pull[bot]@users.noreply.github.com>
Co-authored-by: Ryan Linton <[email protected]>

* Grammar fixes. (microsoft#856)

Updates simple grammar issues.

Co-authored-by: Nick Trescases <[email protected]>
Co-authored-by: Anandraj <[email protected]>
Co-authored-by: Saad Najmi <[email protected]>
Co-authored-by: pull[bot] <39814207+pull[bot]@users.noreply.github.com>
Co-authored-by: Ryan Linton <[email protected]>
Co-authored-by: Muhammad Hamza Zaman <[email protected]>

* remove performKeyEquivalent

Co-authored-by: pull[bot] <39814207+pull[bot]@users.noreply.github.com>
Co-authored-by: Ryan Linton <[email protected]>
Co-authored-by: Nick Trescases <[email protected]>
Co-authored-by: Anandraj <[email protected]>
Co-authored-by: Muhammad Hamza Zaman <[email protected]>
@Saadnajmi Saadnajmi requested a review from alloy as a code owner January 19, 2022 18:48
@Saadnajmi Saadnajmi changed the title Don't override key presses "Space"/"Enter" to perform onClick in RCTV… [0.66] Don't override key presses "Space"/"Enter" to perform onClick in RCTV… Jan 19, 2022
@pull-bot
Copy link

pull-bot commented Jan 19, 2022

Warnings
⚠️

❔ Base Branch - The base branch for this PR is something other than main. Are you sure you want to merge these changes into a stable release? If you are interested in backporting updates to an older release, the suggested approach is to land those changes on main first and then cherry-pick the commits into the branch for that release. The Releases Guide has more information.

Generated by 🚫 dangerJS against 077d059

@Saadnajmi
Copy link
Collaborator Author

Closing till I get the CI in 0.66 in a better state

@Saadnajmi Saadnajmi closed this Jan 19, 2022
@Saadnajmi Saadnajmi reopened this Jan 21, 2022
@HeyImChris HeyImChris merged commit b1d4545 into microsoft:0.66-stable Jan 27, 2022
@Saadnajmi Saadnajmi deleted the key-overrides-66 branch January 27, 2022 00:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants