From 66983fb02847dc9b1c53916da0dc7ad5a09f6644 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Wed, 12 Feb 2025 13:08:49 +0200 Subject: Added blocking/unblocking of users using b/u (user settings are now s instead of "u") --- internal/client/ui/core/state/state.go | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) (limited to 'internal/client/ui/core/state') diff --git a/internal/client/ui/core/state/state.go b/internal/client/ui/core/state/state.go index 607345f..da894ed 100644 --- a/internal/client/ui/core/state/state.go +++ b/internal/client/ui/core/state/state.go @@ -26,13 +26,14 @@ type state struct { ChatState map[snowflake.ID]ChatState // key is frequency id or receiver id LastFrequency map[snowflake.ID]snowflake.ID // key is network id - Messages map[snowflake.ID]*btree.BTreeG[data.Message] // key is frequency id or receiver id - Networks map[snowflake.ID]data.Network // key is network id - Frequencies map[snowflake.ID][]data.Frequency // key is network id - Members map[snowflake.ID]map[snowflake.ID]data.Member // key is network id then user id - Users map[snowflake.ID]data.User // key is user id - TrustedUsers map[snowflake.ID]ed25519.PublicKey // key is user id - BlockedUsers map[snowflake.ID]struct{} // key is user id + Messages map[snowflake.ID]*btree.BTreeG[data.Message] // key is frequency id or receiver id + Networks map[snowflake.ID]data.Network // key is network id + Frequencies map[snowflake.ID][]data.Frequency // key is network id + Members map[snowflake.ID]map[snowflake.ID]data.Member // key is network id then user id + Users map[snowflake.ID]data.User // key is user id + TrustedUsers map[snowflake.ID]ed25519.PublicKey // key is user id + BlockedUsers map[snowflake.ID]struct{} // key is user id + BlockingUsers map[snowflake.ID]struct{} // key is user id LastReadMessages map[snowflake.ID]*snowflake.ID // key is frequency id or receiver id Notifications map[snowflake.ID]int // key is frequency id or receiver id @@ -48,6 +49,7 @@ var State state = state{ Users: map[snowflake.ID]data.User{}, TrustedUsers: map[snowflake.ID]ed25519.PublicKey{}, BlockedUsers: map[snowflake.ID]struct{}{}, + BlockingUsers: map[snowflake.ID]struct{}{}, LastReadMessages: map[snowflake.ID]*snowflake.ID{}, Notifications: map[snowflake.ID]int{}, } @@ -345,7 +347,16 @@ func UpdateBlockedUsers(info *packet.BlockInfo) { delete(State.BlockedUsers, removed) } - for _, trusted := range info.BlockedUsers { - State.BlockedUsers[trusted] = struct{}{} + for _, blocked := range info.BlockedUsers { + State.BlockedUsers[blocked] = struct{}{} + delete(State.TrustedUsers, blocked) + } + + for _, removed := range info.RemovedBlockingUsers { + delete(State.BlockingUsers, removed) + } + + for _, blocking := range info.BlockingUsers { + State.BlockingUsers[blocking] = struct{}{} } } -- cgit v1.3.1