summaryrefslogtreecommitdiff
path: root/internal/client/ui/core/core.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-11-28 18:00:50 +0200
committerKyren223 <Kyren223@proton.me>2024-11-28 18:00:50 +0200
commitd0356edef4dc0a14304b8890e8152911740ff87a (patch)
tree9f96b2e1b591d9d86970db9102abae04055a5ac7 /internal/client/ui/core/core.go
parentc3f8131caf597dc028c08c8dd9f2f65a213e580d (diff)
Added position to networks
Diffstat (limited to 'internal/client/ui/core/core.go')
-rw-r--r--internal/client/ui/core/core.go18
1 files changed, 16 insertions, 2 deletions
diff --git a/internal/client/ui/core/core.go b/internal/client/ui/core/core.go
index 737029f..98158b3 100644
--- a/internal/client/ui/core/core.go
+++ b/internal/client/ui/core/core.go
@@ -3,6 +3,8 @@ package core
import (
"crypto/ed25519"
"fmt"
+ "log"
+ "slices"
"time"
"github.com/charmbracelet/bubbles/spinner"
@@ -138,8 +140,20 @@ func (m *Model) updateConnected(msg tea.Msg) tea.Cmd {
return tea.Batch(gateway.Connect(m.privKey, connectionTimeout), m.loading.Init())
case *packet.NetworksInfo:
- for _, network := range msg.Networks {
- state.State.Networks[network.ID] = network
+ if msg.Set {
+ state.State.Networks = msg.Networks
+ } else {
+ // state.State.Networks = append(state.State.Networks, msg.Networks...)
+ networks := state.State.Networks
+ networks = append(networks, msg.Networks...)
+ networks = slices.DeleteFunc(networks, func(network packet.FullNetwork) bool {
+ return slices.Contains(msg.RemoveNetworks, network.ID)
+ })
+ slices.SortFunc(networks, func(a, b packet.FullNetwork) int {
+ return a.Position - b.Position
+ })
+ log.Println(networks)
+ state.State.Networks = networks
}
case ui.QuitMsg: