-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Investigate focus-based web UIs, e.g., for TVs and Game Consoles #827
Comments
I (and my employer) am very much interested in shipping products to focus-based platforms using react-native/react-native-web. If you come across work/explorations/investigations that you feel like you can delegate, let me know. I'll see if I can find company time or free time (more likely) to help. |
PlayStation have done some work in this space, and reached out about this functionality. Hopefully they will share their focus algorithm at some point. /cc @matthargett |
The DirectionalNavigation library from Microsoft may be a good place to start from. https://github.com/Microsoft/TVHelpers/blob/master/tvjs/src/DirectionalNavigation/directionalnavigation-1.0.0.0.js |
Every focusable element in the DOM will include |
@matthargett did your team ever open source the focus library you mentioned? |
Unless anyone's done any further work in this field, I intend to (try) to make some minor changes to the sublime react-tv-navigation project to support React Native Web. We'll see how it goes. EDIT 1: After investigating this a bit more, I've realised that the implementation is heavily coupled to the DOM (i.e. it uses DOM Events and various DOM-only APIs). So this library could be ported to Tagging @matthargett. EDIT 2: There's another library: |
I experimented with I then spent a few hours getting familiar with Finally, at the end of the work day, I found that there is in fact an existing library for Spatial Navigation in React Native, based on the latter (great!). It does matrix algebra and everything, and it's clearly being used in production:
I'd like to thank Search Engine Optimisation for concealing this..! I'll report back with how it works out for me with React Native Web. |
Update: I'm now using |
Reading material:
The text was updated successfully, but these errors were encountered: