Private
Public Access
1
0

tui: only perform database updates for modified messages

This commit is contained in:
2025-01-25 19:11:25 +00:00
parent 8e2991da1a
commit fb3edad0c3
3 changed files with 34 additions and 32 deletions

View File

@@ -29,7 +29,7 @@ func (m *Model) setMessageContents(i int, content string) {
if i >= len(m.App.Messages) {
panic("i out of range")
}
m.App.Messages[i].Content = content
m.App.SetMessageContents(i, content)
m.messageCache[i] = m.renderMessage(i)
}
@@ -91,19 +91,17 @@ func (m *Model) Update(msg tea.Msg) (shared.ViewModel, tea.Cmd) {
case input:
m.input.SetValue(contents)
case selectedMessage:
toEdit := m.App.Messages[m.selectedMessage]
if toEdit.Content != contents {
toEdit.Content = contents
m.setMessage(m.selectedMessage, toEdit)
if m.App.Messages[m.selectedMessage].Content != contents {
m.setMessageContents(m.selectedMessage, contents)
m.updateContent()
if m.persistence && toEdit.ID > 0 {
if m.persistence && m.App.Messages[m.selectedMessage].ID > 0 {
// create clone of message with its new contents
cmds = append(cmds, m.cloneMessage(toEdit, true))
cmds = append(cmds, m.cloneMessage(m.App.Messages[m.selectedMessage], true))
}
}
}
case msgConversationMessagesLoaded:
m.App.Messages = msg.messages
m.App.SetMessages(msg.messages)
m.selectedMessage = len(msg.messages) - 1
m.rebuildMessageCache()
m.updateContent()