Feat: add switch between sys prompts

This commit is contained in:
Grail Finder
2024-11-23 18:34:02 +03:00
parent 692e0ada4b
commit 6625a8103b
4 changed files with 36 additions and 26 deletions

26
main.go
View File

@@ -102,6 +102,27 @@ func main() {
return
}
})
sysModal := tview.NewModal().
SetText("Switch sys msg:").
AddButtons(sysLabels).
SetDoneFunc(func(buttonIndex int, buttonLabel string) {
switch buttonLabel {
case "cancel":
pages.RemovePage("sys")
return
default:
sysMsg, ok := sysMap[buttonLabel]
if !ok {
logger.Warn("no such sys msg", "name", buttonLabel)
pages.RemovePage("sys")
return
}
chatBody.Messages[0].Content = sysMsg
// replace textview
textView.SetText(chatToText(showSystemMsgs))
pages.RemovePage("sys")
}
})
editArea := tview.NewTextArea().
SetPlaceholder("Replace msg...")
editArea.SetBorder(true).SetTitle("input")
@@ -218,6 +239,11 @@ func main() {
textArea.SetText("pressed ctrl+e", true)
return nil
}
if event.Key() == tcell.KeyCtrlS {
// switch sys prompt
pages.AddPage("sys", sysModal, true, true)
return nil
}
// cannot send msg in editMode or botRespMode
if event.Key() == tcell.KeyEscape && !editMode && !botRespMode {
fromRow, fromColumn, _, _ := textArea.GetCursor()