diff options
author | Grail Finder <wohilas@gmail.com> | 2025-01-24 09:24:37 +0300 |
---|---|---|
committer | Grail Finder <wohilas@gmail.com> | 2025-01-24 09:24:37 +0300 |
commit | 3374080ba01e601c2c05aecc114b6c0a53b60f76 (patch) | |
tree | 518c875aa51ce391927033ec193f85f6e7e0b888 /tables.go | |
parent | 75f51c1a19632ea093e1aad6a91cc7f4a349658c (diff) |
Feat: chat preview
Diffstat (limited to 'tables.go')
-rw-r--r-- | tables.go | 26 |
1 files changed, 21 insertions, 5 deletions
@@ -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 { |