diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-02-10 19:36:07 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-02-10 19:36:07 +0200 |
| commit | ccea2247c053962647b79f232d7e5ac834b9f81e (patch) | |
| tree | 38fb8a6838814e1230d96de8b4bf5efa80713e62 /internal/client/ui/core/state | |
| parent | a496d59fd64102b9aa8da8d86ee19d4eb8cbb547 (diff) | |
Added a way to block/unblock users client-side
Diffstat (limited to 'internal/client/ui/core/state')
| -rw-r--r-- | internal/client/ui/core/state/state.go | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/internal/client/ui/core/state/state.go b/internal/client/ui/core/state/state.go index 58ae0f2..607345f 100644 --- a/internal/client/ui/core/state/state.go +++ b/internal/client/ui/core/state/state.go @@ -32,6 +32,7 @@ type state struct { 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 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 @@ -46,8 +47,9 @@ var State state = state{ Members: map[snowflake.ID]map[snowflake.ID]data.Member{}, Users: map[snowflake.ID]data.User{}, TrustedUsers: map[snowflake.ID]ed25519.PublicKey{}, - Notifications: map[snowflake.ID]int{}, + BlockedUsers: map[snowflake.ID]struct{}{}, LastReadMessages: map[snowflake.ID]*snowflake.ID{}, + Notifications: map[snowflake.ID]int{}, } type UserData struct { @@ -337,3 +339,13 @@ func SendFinalData() { case <-ch2: } } + +func UpdateBlockedUsers(info *packet.BlockInfo) { + for _, removed := range info.RemovedBlockedUsers { + delete(State.BlockedUsers, removed) + } + + for _, trusted := range info.BlockedUsers { + State.BlockedUsers[trusted] = struct{}{} + } +} |
