Pad/internal/browser/search.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)
}