From e88c5f242dbb30f5fc7a9dfb581fa519d2e5ff11 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Sat, 21 Dec 2024 18:29:29 +0200 Subject: Implemented fetching existing messages when changing frequencies --- internal/client/ui/core/chat/chat.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'internal/client/ui/core/chat/chat.go') 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 { -- cgit v1.3.1