mirror of
https://github.com/Kyren223/eko.git
synced 2026-07-13 15:40:27 +00:00
Implemented fetching existing messages when changing frequencies
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -308,19 +308,22 @@ func (m *Model) updateConnected(msg tea.Msg) tea.Cmd {
|
||||
return nil
|
||||
}
|
||||
|
||||
var cmds []tea.Cmd
|
||||
var cmd tea.Cmd
|
||||
switch m.focus {
|
||||
case FocusNetworkList:
|
||||
m.networkList, cmd = m.networkList.Update(msg)
|
||||
m.frequencyList.SetNetworkIndex(m.networkList.Index())
|
||||
m.chat.SetFrequency(m.networkList.Index(), m.frequencyList.Index())
|
||||
case FocusFrequencyList:
|
||||
m.frequencyList, cmd = m.frequencyList.Update(msg)
|
||||
m.chat.SetFrequency(m.networkList.Index(), m.frequencyList.Index())
|
||||
case FocusChat:
|
||||
m.chat, cmd = m.chat.Update(msg)
|
||||
}
|
||||
return cmd
|
||||
|
||||
m.networkList, cmd = m.networkList.Update(msg)
|
||||
cmds = append(cmds, cmd)
|
||||
|
||||
m.frequencyList.SetNetworkIndex(m.networkList.Index())
|
||||
m.frequencyList, cmd = m.frequencyList.Update(msg)
|
||||
cmds = append(cmds, cmd)
|
||||
|
||||
cmd = m.chat.SetFrequency(m.networkList.Index(), m.frequencyList.Index())
|
||||
cmds = append(cmds, cmd)
|
||||
m.chat, cmd = m.chat.Update(msg)
|
||||
cmds = append(cmds, cmd)
|
||||
|
||||
return tea.Batch(cmds...)
|
||||
}
|
||||
|
||||
func (m *Model) updateLoadScreenContent() {
|
||||
|
||||
@@ -96,6 +96,10 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) {
|
||||
}
|
||||
|
||||
case tea.KeyMsg:
|
||||
if !m.focus {
|
||||
return m, nil
|
||||
}
|
||||
|
||||
key := msg.String()
|
||||
switch key {
|
||||
case "K":
|
||||
|
||||
@@ -120,6 +120,10 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) {
|
||||
}
|
||||
|
||||
case tea.KeyMsg:
|
||||
if !m.focus {
|
||||
return m, nil
|
||||
}
|
||||
|
||||
key := msg.String()
|
||||
switch key {
|
||||
case "K":
|
||||
|
||||
Reference in New Issue
Block a user