summaryrefslogtreecommitdiffstats
path: root/pkg/gui/context/search_trait.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/context/search_trait.go')
-rw-r--r--pkg/gui/context/search_trait.go40
1 files changed, 24 insertions, 16 deletions
diff --git a/pkg/gui/context/search_trait.go b/pkg/gui/context/search_trait.go
index 264c8217d..b8faf0757 100644
--- a/pkg/gui/context/search_trait.go
+++ b/pkg/gui/context/search_trait.go
@@ -37,20 +37,32 @@ func (self *SearchTrait) ClearSearchString() {
func (self *SearchTrait) IsSearchableContext() {}
func (self *SearchTrait) onSelectItemWrapper(innerFunc func(int) error) func(int, int, int) error {
- keybindingConfig := self.c.UserConfig.Keybinding
+ return func(selectedLineIdx int, index int, total int) error {
+ self.RenderSearchStatus(index, total)
- return func(y int, index int, total int) error {
- if total == 0 {
- self.c.SetViewContent(
- self.c.Views().Search,
- fmt.Sprintf(
- self.c.Tr.NoMatchesFor,
- self.searchString,
- theme.OptionsFgColor.Sprintf(self.c.Tr.ExitSearchMode, keybindings.Label(keybindingConfig.Universal.Return)),
- ),
- )
- return nil
+ if total != 0 {
+ if err := innerFunc(selectedLineIdx); err != nil {
+ return err
+ }
}
+
+ return nil
+ }
+}
+
+func (self *SearchTrait) RenderSearchStatus(index int, total int) {
+ keybindingConfig := self.c.UserConfig.Keybinding
+
+ if total == 0 {
+ self.c.SetViewContent(
+ self.c.Views().Search,
+ fmt.Sprintf(
+ self.c.Tr.NoMatchesFor,
+ self.searchString,
+ theme.OptionsFgColor.Sprintf(self.c.Tr.ExitSearchMode, keybindings.Label(keybindingConfig.Universal.Return)),
+ ),
+ )
+ } else {
self.c.SetViewContent(
self.c.Views().Search,
fmt.Sprintf(
@@ -66,10 +78,6 @@ func (self *SearchTrait) onSelectItemWrapper(innerFunc func(int) error) func(int
),
),
)
- if err := innerFunc(y); err != nil {
- return err
- }
- return nil
}
}