summaryrefslogtreecommitdiff
path: root/internal/client/ui/core/chat/chat.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-12-21 18:29:29 +0200
committerKyren223 <Kyren223@proton.me>2024-12-21 18:29:29 +0200
commite88c5f242dbb30f5fc7a9dfb581fa519d2e5ff11 (patch)
treeecfeab1db33922fe115b88b2b8e57efb28f40493 /internal/client/ui/core/chat/chat.go
parent3c35c3dbfab1ed6ee2e193f881fad4ed5754d0c0 (diff)
Implemented fetching existing messages when changing frequencies
Diffstat (limited to 'internal/client/ui/core/chat/chat.go')
-rw-r--r--internal/client/ui/core/chat/chat.go14
1 files changed, 10 insertions, 4 deletions
diff --git a/internal/client/ui/core/chat/chat.go b/internal/client/ui/core/chat/chat.go
index 6ae7cdd..acc4da8 100644
--- a/internal/client/ui/core/chat/chat.go
+++ b/internal/client/ui/core/chat/chat.go
@@ -344,15 +344,15 @@ func (m *Model) SetReceiver(receiverIndex int) {
m.RestoreAfterSwitch()
}
-func (m *Model) SetFrequency(networkIndex, frequencyIndex int) {
+func (m *Model) SetFrequency(networkIndex, frequencyIndex int) tea.Cmd {
if m.frequencyIndex == frequencyIndex && m.networkIndex == networkIndex {
- return
+ return nil
}
m.ResetBeforeSwitch()
m.receiverIndex = -1
m.frequencyIndex = frequencyIndex
m.networkIndex = networkIndex
- m.RestoreAfterSwitch()
+ return m.RestoreAfterSwitch()
}
func (m *Model) ResetBeforeSwitch() {
@@ -368,7 +368,7 @@ func (m *Model) ResetBeforeSwitch() {
}
}
-func (m *Model) RestoreAfterSwitch() {
+func (m *Model) RestoreAfterSwitch() tea.Cmd {
msgs := state.State.IncompleteMessages
if m.frequencyIndex != -1 && m.networkIndex != -1 {
network := state.State.Networks[m.networkIndex]
@@ -377,9 +377,15 @@ func (m *Model) RestoreAfterSwitch() {
if val, ok := msgs[frequencyId]; ok {
m.vi.SetString(val)
}
+ return gateway.Send(&packet.RequestMessages{
+ ReceiverID: nil,
+ FrequencyID: &frequencyId,
+ })
} else if m.receiverIndex != -1 {
// TODO: receiver
}
+
+ return nil
}
func (m *Model) renderMessage(message data.Message, builder *strings.Builder, header bool) int {