diff options
| author | Kyren223 <Kyren223@proton.me> | 2024-12-24 17:52:01 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2024-12-24 17:52:01 +0200 |
| commit | d4ca377a72a04c814d7241e8937ce3cfdca7f00c (patch) | |
| tree | 2db4e3b595aa17b0b6ee4e3f5e3b78948b59d7f3 /internal/client/ui/core/chat | |
| parent | 0746f3de04c81e39f5602e6822e2dbb45e1fa89b (diff) | |
Made the message view more stateful by remembering where in the view the
user was
Diffstat (limited to 'internal/client/ui/core/chat')
| -rw-r--r-- | internal/client/ui/core/chat/chat.go | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/internal/client/ui/core/chat/chat.go b/internal/client/ui/core/chat/chat.go index 90e8d0d..0d8f22c 100644 --- a/internal/client/ui/core/chat/chat.go +++ b/internal/client/ui/core/chat/chat.go @@ -255,26 +255,34 @@ func (m *Model) SetFrequency(networkIndex, frequencyIndex int) tea.Cmd { } func (m *Model) ResetBeforeSwitch() { - m.index = -1 if m.frequencyIndex != -1 && m.networkIndex != -1 { network := state.State.Networks[m.networkIndex] frequencyId := network.Frequencies[m.frequencyIndex].ID log.Println("Saving", frequencyId) - state.State.IncompleteMessages[frequencyId] = m.vi.String() + state.State.FrequencyState[frequencyId] = state.Frequency{ + IncompleteMessage: m.vi.String(), + Offset: m.offset, + MaxHeight: m.maxMessagesHeight, + } m.vi.Reset() + m.offset = SnapToBottom + m.maxMessagesHeight = -1 + m.index = -1 } else if m.receiverIndex != -1 { // TODO: receiver } } func (m *Model) RestoreAfterSwitch() tea.Cmd { - msgs := state.State.IncompleteMessages + msgs := state.State.FrequencyState if m.frequencyIndex != -1 && m.networkIndex != -1 { network := state.State.Networks[m.networkIndex] frequencyId := network.Frequencies[m.frequencyIndex].ID log.Println("Restoring", frequencyId) if val, ok := msgs[frequencyId]; ok { - m.vi.SetString(val) + m.vi.SetString(val.IncompleteMessage) + m.offset = val.Offset + m.maxMessagesHeight = val.MaxHeight } return gateway.Send(&packet.RequestMessages{ ReceiverID: nil, |
