From e5eaba1d5a6c07b3a02d38dcc81dbac49bffcc38 Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Wed, 3 Dec 2025 12:50:23 +0300 Subject: Enha: x to exit from a table --- tables.go | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/tables.go b/tables.go index 755f255..6baf9d6 100644 --- a/tables.go +++ b/tables.go @@ -49,7 +49,7 @@ func makeChatTable(chatMap map[string]models.Chat) *tview.Table { } } chatActTable.Select(0, 0).SetFixed(1, 1).SetDoneFunc(func(key tcell.Key) { - if key == tcell.KeyEsc || key == tcell.KeyF1 { + if key == tcell.KeyEsc || key == tcell.KeyF1 || key == tcell.Key('x') { pages.RemovePage(historyPage) return } @@ -166,6 +166,14 @@ func makeChatTable(chatMap map[string]models.Chat) *tview.Table { return } }) + // Add input capture to handle 'x' key for closing the table + chatActTable.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { + if event.Key() == tcell.KeyRune && event.Rune() == 'x' { + pages.RemovePage(historyPage) + return nil + } + return event + }) return chatActTable } @@ -441,7 +449,7 @@ func makeAgentTable(agentList []string) *tview.Table { } } chatActTable.Select(0, 0).SetFixed(1, 1).SetDoneFunc(func(key tcell.Key) { - if key == tcell.KeyEsc || key == tcell.KeyF1 { + if key == tcell.KeyEsc || key == tcell.KeyF1 || key == tcell.Key('x') { pages.RemovePage(agentPage) return } @@ -493,6 +501,14 @@ func makeAgentTable(agentList []string) *tview.Table { return } }) + // Add input capture to handle 'x' key for closing the table + chatActTable.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { + if event.Key() == tcell.KeyRune && event.Rune() == 'x' { + pages.RemovePage(agentPage) + return nil + } + return event + }) return chatActTable } @@ -522,8 +538,8 @@ func makeCodeBlockTable(codeBlocks []string) *tview.Table { } } table.Select(0, 0).SetFixed(1, 1).SetDoneFunc(func(key tcell.Key) { - if key == tcell.KeyEsc || key == tcell.KeyF1 { - pages.RemovePage(agentPage) + if key == tcell.KeyEsc || key == tcell.KeyF1 || key == tcell.Key('x') { + pages.RemovePage(codeBlockPage) return } if key == tcell.KeyEnter { @@ -553,6 +569,14 @@ func makeCodeBlockTable(codeBlocks []string) *tview.Table { return } }) + // Add input capture to handle 'x' key for closing the table + table.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { + if event.Key() == tcell.KeyRune && event.Rune() == 'x' { + pages.RemovePage(codeBlockPage) + return nil + } + return event + }) return table } @@ -578,7 +602,7 @@ func makeImportChatTable(filenames []string) *tview.Table { } } chatActTable.Select(0, 0).SetFixed(1, 1).SetDoneFunc(func(key tcell.Key) { - if key == tcell.KeyEsc || key == tcell.KeyF1 { + if key == tcell.KeyEsc || key == tcell.KeyF1 || key == tcell.Key('x') { pages.RemovePage(historyPage) return } @@ -629,6 +653,14 @@ func makeImportChatTable(filenames []string) *tview.Table { return } }) + // Add input capture to handle 'x' key for closing the table + chatActTable.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { + if event.Key() == tcell.KeyRune && event.Rune() == 'x' { + pages.RemovePage(historyPage) + return nil + } + return event + }) return chatActTable } -- cgit v1.2.3