diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-02-12 13:08:49 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-02-12 13:08:49 +0200 |
| commit | 66983fb02847dc9b1c53916da0dc7ad5a09f6644 (patch) | |
| tree | 897301226bcb87bf6a7d2b823e74abecabece680 /internal/client/ui/core/state | |
| parent | 976d3683f963b6f9282a534e1b4fec2411b738a2 (diff) | |
Added blocking/unblocking of users using b/u (user settings are now s
instead of "u")
Diffstat (limited to 'internal/client/ui/core/state')
| -rw-r--r-- | internal/client/ui/core/state/state.go | 29 |
1 files changed, 20 insertions, 9 deletions
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{}{} } } |
