feat(ui): visual feedback for invalid search input #180
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.


Related Issue
Closes #168
Problem
When a user types a character that yields no match, the last character is immediately removed. Many users interpret this as a bug or as an indication that the mod has stopped working. There’s no clear indication why input is being rejected.
Proposed Solution
Introduce a brief "blink" animation on the search field to signal invalid input, in addition to silently truncating the text. When the filter finds no matches, the field border and background flash briefly.
Changes
NewUITextBoxenhancementsTriggerInvalidBlink()method to start the blink animation.DrawSelf()to handle blink timing and apply temporary styles.Filter validation methods
ValidateItemFilter(),ValidateItemDescription(),ValidateNPCFilter()TriggerInvalidBlink()on no-match.XML documentation
<summary>comments for all affected methods to reflect the new behavior.Demo
feedback-when-search-input-limited.mp4
Alternatives Considered
Highlight unmatched suffix in search fields (see: a8eae24 and 3e4e5f6)
Demo
highlight-unmatched-suffix-in-search-fields.mp4