fix(dropdown): preserve input value when choices update via key_up#13157
Open
viditkbhatnagar wants to merge 3 commits intogradio-app:mainfrom
Open
fix(dropdown): preserve input value when choices update via key_up#13157viditkbhatnagar wants to merge 3 commits intogradio-app:mainfrom
viditkbhatnagar wants to merge 3 commits intogradio-app:mainfrom
Conversation
The value-sync effect in Dropdown.svelte reset input_text whenever choices changed, even during active typing. When key_up triggered a backend update with new choices, the effect saw value=null and cleared the input, also causing spurious change events. Added is_focused guard so the value-sync effect skips resetting input_text while the user is typing. It still refreshes filtered_indices and selected_index for the new choices. Added 3 tests covering search-as-you-type: preserving input text, no spurious change events, and showing updated options. All 380 tests pass. Fixes gradio-app#13127
Collaborator
🪼 branch checks and previews
Install Gradio from this PR pip install https://huggingface.co/buckets/gradio/pypi-previews/resolve/cc033ce3910f5297c74bcc594acc8be554a1fe30/gradio-6.10.0-py3-none-any.whlInstall Gradio Python Client from this PR pip install "gradio-client @ git+https://github.com/gradio-app/gradio@cc033ce3910f5297c74bcc594acc8be554a1fe30#subdirectory=client/python"Install Gradio JS Client from this PR npm install https://gradio-npm-previews.s3.amazonaws.com/cc033ce3910f5297c74bcc594acc8be554a1fe30/gradio-client-2.1.0.tgz |
Collaborator
🦄 change detectedThis Pull Request includes changes to the following packages.
|
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.
The value-sync effect in Dropdown.svelte reset input_text whenever choices changed, even during active typing. When key_up triggered a backend update with new choices, the effect saw value=null and cleared the input, also causing spurious change events.
Added is_focused guard so the value-sync effect skips resetting input_text while the user is typing. It still refreshes filtered_indices and selected_index for the new choices.
Added 3 tests covering search-as-you-type: preserving input text, no spurious change events, and showing updated options.
All 380 tests pass.
Fixes #13127
Description
Please include a concise summary, in clear English, of the changes in this pull request. If it closes an issue, please mention it here.
Closes: #(issue)
AI Disclosure
We encourage the use of AI tooling in creating PRs, but the any non-trivial use of AI needs be disclosed. E.g. if you used Claude to write a first draft, you should mention that. Trivial tab-completion doesn't need to be disclosed. You should self-review all PRs, especially if they were generated with AI.
🎯 PRs Should Target Issues
Before your create a PR, please check to see if there is an existing issue for this change. If not, please create an issue before you create this PR, unless the fix is very small.
Not adhering to this guideline will result in the PR being closed.
Testing and Formatting Your Code
PRs will only be merged if tests pass on CI. We recommend at least running the backend tests locally, please set up your Gradio environment locally and run the backed tests:
bash scripts/run_backend_tests.shPlease run these bash scripts to automatically format your code:
bash scripts/format_backend.sh, and (if you made any changes to non-Python files)bash scripts/format_frontend.sh