summaryrefslogtreecommitdiff
path: root/tables.go
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2025-01-24 09:24:37 +0300
committerGrail Finder <wohilas@gmail.com>2025-01-24 09:24:37 +0300
commit3374080ba01e601c2c05aecc114b6c0a53b60f76 (patch)
tree518c875aa51ce391927033ec193f85f6e7e0b888 /tables.go
parent75f51c1a19632ea093e1aad6a91cc7f4a349658c (diff)
Feat: chat preview
Diffstat (limited to 'tables.go')
-rw-r--r--tables.go26
1 files changed, 21 insertions, 5 deletions
diff --git a/tables.go b/tables.go
index 16dedda..e12a690 100644
--- a/tables.go
+++ b/tables.go
@@ -6,32 +6,48 @@ import (
"path"
"time"
+ "elefant/models"
"elefant/rag"
"github.com/gdamore/tcell/v2"
"github.com/rivo/tview"
)
-func makeChatTable(chatList []string) *tview.Table {
+func makeChatTable(chatMap map[string]models.Chat) *tview.Table {
actions := []string{"load", "rename", "delete"}
- rows, cols := len(chatList), len(actions)+1
+ chatList := make([]string, len(chatMap))
+ i := 0
+ for name := range chatMap {
+ chatList[i] = name
+ i++
+ }
+ rows, cols := len(chatMap), len(actions)+2
chatActTable := tview.NewTable().
SetBorders(true)
+ // for chatName, chat := range chatMap {
for r := 0; r < rows; r++ {
+ // r := 0
for c := 0; c < cols; c++ {
color := tcell.ColorWhite
- if c < 1 {
+ switch c {
+ case 0:
chatActTable.SetCell(r, c,
tview.NewTableCell(chatList[r]).
SetTextColor(color).
SetAlign(tview.AlignCenter))
- } else {
+ case 1:
chatActTable.SetCell(r, c,
- tview.NewTableCell(actions[c-1]).
+ tview.NewTableCell(chatMap[chatList[r]].Msgs[len(chatMap[chatList[r]].Msgs)-30:]).
+ SetTextColor(color).
+ SetAlign(tview.AlignCenter))
+ default:
+ chatActTable.SetCell(r, c,
+ tview.NewTableCell(actions[c-2]).
SetTextColor(color).
SetAlign(tview.AlignCenter))
}
}
+ // r++
}
chatActTable.Select(0, 0).SetFixed(1, 1).SetDoneFunc(func(key tcell.Key) {
if key == tcell.KeyEsc || key == tcell.KeyF1 {