19 lines
580 B
Go
19 lines
580 B
Go
package browser
|
|
|
|
// HandleSearch filters entries by the given query string.
|
|
// It performs case-insensitive substring matching across all entries in the SortIndex.
|
|
// When query is empty, search results are cleared.
|
|
// When results are found, ScrollOffset is set to jump to the first match.
|
|
func HandleSearch(s *BrowserState, query string) {
|
|
s.Query = query
|
|
|
|
// Empty query clears search results; leave ScrollOffset unchanged.
|
|
if query == "" {
|
|
s.SearchResults = nil
|
|
s.ScrollOffset = 0 // Reset scroll offset when search is cleared
|
|
return
|
|
}
|
|
|
|
recomputeSearchResults(s)
|
|
}
|