summaryrefslogtreecommitdiff
path: root/internal/client/ui/core/core.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-01-06 16:17:59 +0200
committerKyren223 <Kyren223@proton.me>2025-01-06 16:17:59 +0200
commit547593d3159d8772392e81b40082928094b35b8c (patch)
treec8c7a93309c1938d6de8b1fc3ccb8042d2210821 /internal/client/ui/core/core.go
parent6be63e6df626e390565e26439b65e81088375a84 (diff)
Fleshed out and fixed issues in both the server and client for how
networks and members work
Diffstat (limited to 'internal/client/ui/core/core.go')
-rw-r--r--internal/client/ui/core/core.go48
1 files changed, 47 insertions, 1 deletions
diff --git a/internal/client/ui/core/core.go b/internal/client/ui/core/core.go
index 69bffec..50abbe6 100644
--- a/internal/client/ui/core/core.go
+++ b/internal/client/ui/core/core.go
@@ -212,6 +212,35 @@ func (m *Model) updateConnected(msg tea.Msg) tea.Cmd {
state.State.Networks = networks
}
+ case *packet.MembersInfo:
+ var network *packet.FullNetwork
+ for i, fullNetwork := range state.State.Networks {
+ if fullNetwork.ID == msg.Network {
+ network = &state.State.Networks[i]
+ }
+ }
+
+ members := network.Members
+ for _, updatedMember := range msg.Members {
+ add := true
+ for i, existingMember := range members {
+ if existingMember.User.ID == updatedMember.User.ID {
+ add = false
+ members[i] = updatedMember
+ break
+ }
+ }
+ if add {
+ members = append(members, updatedMember)
+ }
+ }
+
+ members = slices.DeleteFunc(members, func(member data.GetNetworkMembersRow) bool {
+ return slices.Contains(msg.RemovedMembers, member.User.ID)
+ })
+ log.Println(members)
+ network.Members = members
+
case *packet.FrequenciesInfo:
var network *packet.FullNetwork
for i, fullNetwork := range state.State.Networks {
@@ -219,8 +248,25 @@ func (m *Model) updateConnected(msg tea.Msg) tea.Cmd {
network = &state.State.Networks[i]
}
}
+
frequencies := network.Frequencies
- frequencies = append(frequencies, msg.Frequencies...)
+ for _, newFrequency := range msg.Frequencies {
+ add := true
+ for i, existingFrequency := range frequencies {
+ if existingFrequency.ID == newFrequency.ID {
+ add = false
+ if newFrequency.Position == -1 {
+ newFrequency.Position = existingFrequency.Position
+ }
+ frequencies[i] = newFrequency
+ break
+ }
+ }
+ if add {
+ frequencies = append(frequencies, newFrequency)
+ }
+ }
+
frequencies = slices.DeleteFunc(frequencies, func(frequency data.Frequency) bool {
return slices.Contains(msg.RemovedFrequencies, frequency.ID)
})