Repository navigation
Don't preventDefault on Enter in Combobox if unhandled - #3417
Closed
fakemonster wants to merge 1 commit into
Closed
fakemonster wants to merge 1 commit into
fakemonster wants to merge 1 commit into
Conversation
Previously, by unconditionally preventing default on Enter presses in the Combobox, it was impossible to submit a form by hitting enter while focused in a (closed) Combobox. A user would reasonably expect that pressing Enter while it was closed, much like a regular text field, would submit the form they were in. In practice this means a keyboard user is going to navigate to the combobox, find their selection, and hit enter twice: once to close the selection and again to submit the form.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Author
|
@charliepark this is what i was getting at in response to your comment here; propagating enter presses from the combobox is a more general change (if fairly simple) |
This was referenced Oct 22, 2026
david-crespo
added a commit
that referenced
this pull request
Oct 30, 2026
…3422) The diff is unreadable unless you [hide whitespace changes](https://github.com/oxidecomputer/console/pull/3422/changes?w=1) because it adds a wrapper to existing code. This is an alternative to #3417 that deletes the sad logic inside Combobox instead of fixing it. We get rid of `onEnter`, and instead of having to keep track of whether the list is open with `isOpenRef` and decide when to `preventDefault`, Combobox never calls `preventDefault` (unless it's done for it by Headless UI when selecting an option). But in subforms we still need to capture those enter keypresses before they hit the parent form, so we wrap subforms in a `Subform` component with an `onSubmit` prop. The advantage is we no longer have to remember to do this for every field we add to a subform (and we have messed this up before). This approach fixes the same problem cases as #3417, all of which are noops on `main`. Enter in a closed combobox now: - Adds the protocol filter from the ICMP type combobox, like Enter in the ICMP code field next to it - Applies the alert class filter (#3393) - Submits standalone forms from their pickers, like link silo, link pool, attach disk, create snapshot, and instance create's boot disk and image pickers `Subform.browser.spec.tsx` tests Enter in a combobox, text input, and button inside a subform, and in a combobox outside a subform. In the e2e tests, Enter adds a firewall rule target, port and ICMP type, a webhook secret, and a transit IP. Enter in a closed combobox applies the alert class filter, attaches a disk, and creates an instance from the image picker (these tests fail on main).
Collaborator
|
Superseded by #3422 |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Previously, by unconditionally preventing default on Enter presses in the Combobox, it was impossible to submit a form by hitting enter while focused in a (closed) Combobox. A user would reasonably expect that pressing Enter while it was closed, much like a regular text field, would submit the form they were in.
In practice this means a keyboard user is going to navigate to the combobox, find their selection, and hit enter twice: once to close the selection and again to submit the form.