diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-01-06 16:17:59 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-01-06 16:17:59 +0200 |
| commit | 547593d3159d8772392e81b40082928094b35b8c (patch) | |
| tree | c8c7a93309c1938d6de8b1fc3ccb8042d2210821 /internal/client/ui/core/core.go | |
| parent | 6be63e6df626e390565e26439b65e81088375a84 (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.go | 48 |
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) }) |
