You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Combobox input issue starting from v9.2.0 and missing changelog #1678
When we upgrade from v9.0.13 to v9.2.0, the search behavior of our Combobox breaks so that when you try to type, the text disappears. We have used the cursor jump workaround to get around issue that cursor jumps to end when trying to type in the middle of the input text. Removing this workaround fixes the search issue but then we get the cursor jump issue, and it seems that cursor jump issue is never going to be fixed / is unfixable from Downshift's point of view.
So would be really nice to see from somewhere what has happened between those 2 versions that causes this. I could use the compare feature in releases pages but with 128 files changed between the versions and not knowing the codebase makes it kinda hard to try to pinpoint what causes this.
Steps to reproduce: simply try to type to the input field and text disappears instantly. If you remove the onChange workaround for the input cursor jump, then it starts working, but that is not an option for us. While doing the sandbox I noticed that for some reason onSelectedItemChange gets called with selectedItem: null item which seems to be the reason it starts going wrong. But I don't understand why downshift does this.
Found the issue, will fix it shortly, it's a typescript migration that went wrong on one variable.
The bigger issue seems to be that our tests are focused on components behavior. We are not testing the individual utils individually, and we should. It's impossible to predict all the possible use cases, since the flexibility of Downshift, given control props, on change props, state reducer etc can span out of control for unit tests to be able to cover it.
I am in the process of refactoring hooks utils to TypeScript. As part of this process, I will check that the utils are tested individually as well. It's frustrating for me as well to deliver regressions whenever I want to actually deliver an improvement, and I think testing the utils individually, even though for the most part is going to be duplicated tests, is the way to go in order to test corner cases.
Sorry for the inconvenience and I appreciate you are using the library and reporting issues with it, so we can improve it further. I believe that once I add the utils tests, we will be in a better position moving forward.
Activity
silviuaavram commentedon Feb 19, 2026
Hey @joonass-visma could you provide a repro environment so we could check the broken behavior? Thanks!
joonass-visma commentedon Feb 20, 2026
@silviuaavram Thanks for the quick reply. Here is codesandbox: https://codesandbox.io/p/sandbox/downshift-bug-fxxnfw. Use-case is a bit unique as we are trying to use combobox as regular text field while also being searchable select.
Steps to reproduce: simply try to type to the input field and text disappears instantly. If you remove the
onChangeworkaround for the input cursor jump, then it starts working, but that is not an option for us. While doing the sandbox I noticed that for some reasononSelectedItemChangegets called withselectedItem: nullitem which seems to be the reason it starts going wrong. But I don't understand why downshift does this.silviuaavram commentedon Feb 20, 2026
Thanks @joonass-visma I will take a look!
silviuaavram commentedon Mar 3, 2026
Fixed the changelog.
Found the issue, will fix it shortly, it's a typescript migration that went wrong on one variable.
The bigger issue seems to be that our tests are focused on components behavior. We are not testing the individual utils individually, and we should. It's impossible to predict all the possible use cases, since the flexibility of Downshift, given control props, on change props, state reducer etc can span out of control for unit tests to be able to cover it.
I am in the process of refactoring hooks utils to TypeScript. As part of this process, I will check that the utils are tested individually as well. It's frustrating for me as well to deliver regressions whenever I want to actually deliver an improvement, and I think testing the utils individually, even though for the most part is going to be duplicated tests, is the way to go in order to test corner cases.
Sorry for the inconvenience and I appreciate you are using the library and reporting issues with it, so we can improve it further. I believe that once I add the utils tests, we will be in a better position moving forward.
github-actions commentedon May 31, 2026
🎉 This issue has been resolved in version 9.3.4 🎉
The release is available on:
Your semantic-release bot 📦🚀