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

Render SelectFields as MUI Selects #4059

Draft
wants to merge 20 commits into
base: main
Choose a base branch
from
Draft

Render SelectFields as MUI Selects #4059

wants to merge 20 commits into from

Conversation

CommandMC
Copy link
Collaborator

@CommandMC CommandMC commented Oct 14, 2024

This renders most drop-down selection prompts inside Heroic. In turn, these dropdowns now work inside the Gamescope session.

Current issues:

  • Controller navigation does not work, hitting "Down" opens the dropdown, with no way to navigate further down to other components
  • There is a black box in the top-left of the component, where the label should be
  • The dropdowns do not work while in a Dialog (they're rendered behind the Dialog)

Use the following Checklist if you have changed something on the Backend or Frontend:

  • Tested the feature and it's working on a current and clean install.
  • Tested the main App features and they are still working on a current and clean install. (Login, Install, Play, Uninstall, Move games, etc.)
  • Created / Updated Tests (If necessary)
  • Created / Updated documentation (If necessary)

CommandMC and others added 17 commits December 1, 2024 18:47
This renders most drop-down selection prompts inside Heroic. In turn, these
dropdowns now work inside the Gamescope session.

Current issues:
- Controller navigation does not work, hitting "Down" opens the dropdown, with
  no way to navigate further down to other components
- There is a black box in the top-left of the component, where the label should
  be
MUI CSS class names are not stable, they cannot be used like this
I prefer to use this over CSS rules in a separate file since it can sometimes be
unclear where "the magic happens". Having layout and style together is clearer
IMO
This will definitely break things, but it makes selects work
Navigating "over" selects now works

This is done by simulating Tab/Shift-Tab key presses when pressing the
respective buttons while focussing a MUI select element

I've gone ahead and removed our home-grown `GamepadInputEvent` type, as it's
just a lesser version of Electron's input events
This makes dialogs closeable with the back button again
Restoring the focussed element on dialog close is already handled by MUI, we
don't need this code ourselves

Moving focus on dialog open *should* work automatically as well, however it
doesn't. I've tried various methods with element properties and JS, nothing
seems to work. As a band-aid fix for now, we simulate 1-2 tab presses to focus
the dialog content
Closing selects with the B/Circle button
MUI treats an empty value as "don't show anything selected", while native
selects show the first option
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr:wip WIP, don't merge.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants