From 4db087dbe44795a895febef14e8c7634f84719b5 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Sat, 21 Dec 2024 16:21:16 +0200 Subject: Selected message automatically diselects itself when switching frequency --- internal/client/ui/core/chat/chat.go | 25 ++++++++++++++++++++----- internal/client/ui/core/core.go | 4 +--- 2 files changed, 21 insertions(+), 8 deletions(-) (limited to 'internal/client/ui/core') diff --git a/internal/client/ui/core/chat/chat.go b/internal/client/ui/core/chat/chat.go index b2f33a5..83edc8f 100644 --- a/internal/client/ui/core/chat/chat.go +++ b/internal/client/ui/core/chat/chat.go @@ -329,13 +329,28 @@ func (m *Model) sendMessage() tea.Cmd { }) } -func (m *Model) SetNetworkIndex(networkIndex int) { - m.networkIndex = networkIndex +// func (m *Model) SetNetworkIndex(networkIndex int) { +// if m.networkIndex != networkIndex { +// m.index = -1 +// } +// m.networkIndex = networkIndex +// } + +func (m *Model) SetReceiver(receiverIndex int) { + if m.receiverIndex == nil || *m.receiverIndex != receiverIndex { + m.index = -1 + } + m.receiverIndex = &receiverIndex + m.frequencyIndex = nil } -func (m *Model) Set(receiverIndex, frequencyIndex *int) { - m.receiverIndex = receiverIndex - m.frequencyIndex = frequencyIndex +func (m *Model) SetFrequency(networkIndex, frequencyIndex int) { + if m.frequencyIndex == nil || *m.frequencyIndex != frequencyIndex { + m.index = -1 + } + m.receiverIndex = nil + m.frequencyIndex = &frequencyIndex + m.networkIndex = networkIndex } func (m *Model) renderMessage(message data.Message, builder *strings.Builder, header bool) int { diff --git a/internal/client/ui/core/core.go b/internal/client/ui/core/core.go index 4c3db77..11da7ef 100644 --- a/internal/client/ui/core/core.go +++ b/internal/client/ui/core/core.go @@ -313,11 +313,9 @@ func (m *Model) updateConnected(msg tea.Msg) tea.Cmd { case FocusNetworkList: m.networkList, cmd = m.networkList.Update(msg) m.frequencyList.SetNetworkIndex(m.networkList.Index()) - m.chat.SetNetworkIndex(m.networkList.Index()) case FocusFrequencyList: m.frequencyList, cmd = m.frequencyList.Update(msg) - index := m.frequencyList.Index() - m.chat.Set(nil, &index) + m.chat.SetFrequency(m.networkList.Index(), m.frequencyList.Index()) case FocusChat: m.chat, cmd = m.chat.Update(msg) } -- cgit v1.3.1