diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2023-05-28 13:25:52 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2023-07-03 12:54:14 +1000 |
commit | d67b209e62f8254d5f17ecdb8fe7ff810f000566 (patch) | |
tree | 220b15b574abaf5a68cfa030f25ac3d2f58bf586 /pkg/gui/controllers/helpers | |
parent | bf5871cc4fe8bd7f431e5603447ea0bc29b3d642 (diff) |
Move more logic into search helper
Diffstat (limited to 'pkg/gui/controllers/helpers')
-rw-r--r-- | pkg/gui/controllers/helpers/search_helper.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/pkg/gui/controllers/helpers/search_helper.go b/pkg/gui/controllers/helpers/search_helper.go index e825fba3e..f8bfcbd9c 100644 --- a/pkg/gui/controllers/helpers/search_helper.go +++ b/pkg/gui/controllers/helpers/search_helper.go @@ -195,3 +195,36 @@ func (self *SearchHelper) OnPromptContentChanged(searchString string) { // do nothing (shouldn't land here) } } + +func (self *SearchHelper) DisplaySearchInfoIfSearching(c types.Context) { + if searchableContext, ok := c.(types.ISearchableContext); ok { + if searchableContext.IsSearching() { + self.DisplaySearchPrompt(searchableContext) + } + } + if filterableContext, ok := c.(types.IFilterableContext); ok { + if filterableContext.IsFiltering() { + self.DisplayFilterPrompt(filterableContext) + } + } +} + +func (self *SearchHelper) CancelSearchIfSearching(c types.Context) { + if searchableContext, ok := c.(types.ISearchableContext); ok { + view := searchableContext.GetView() + if view != nil && view.IsSearching() { + view.ClearSearch() + searchableContext.ClearSearchString() + self.Cancel() + } + return + } + + if filterableContext, ok := c.(types.IFilterableContext); ok { + if filterableContext.IsFiltering() { + filterableContext.ClearFilter() + self.Cancel() + } + return + } +} |