Skip to content

Conversation

@metonym
Copy link
Owner

@metonym metonym commented Nov 25, 2025

Fixes #99

Currently, Typeahead results would display even when the input field doesn't have focus (reacting to value changes). This was particularly problematic in scenarios with dependent Typeahead components where values are set programmatically. When a parent Typeahead selection automatically populated a child Typeahead with a single matching result, that result would incorrectly display even though the user hadn't interacted with the child input.

From a UX standpoint, it makes sense to only show results when the current input is focused. This, however, renders the current showDropdownOnFocus a no-op. It may need to be inverted (e.g., show menu if input has value).

// Before: results could show without focus
$: showResults = !hideDropdown && results.length > 0;
$: if (showDropdownOnFocus) {
  showResults = showResults && isFocused;
}

// After: results always require focus
$: showResults = !hideDropdown && results.length > 0 && isFocused;

This ensures results only appear when users are actively interacting with the input, preventing unwanted dropdown displays in programmatic usage scenarios.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Updating the value prop opens the dropdown without being focused

2 participants