summaryrefslogtreecommitdiff
path: root/internal/client/ui/core/state/state.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-02-12 13:08:49 +0200
committerKyren223 <Kyren223@proton.me>2025-02-12 13:08:49 +0200
commit66983fb02847dc9b1c53916da0dc7ad5a09f6644 (patch)
tree897301226bcb87bf6a7d2b823e74abecabece680 /internal/client/ui/core/state/state.go
parent976d3683f963b6f9282a534e1b4fec2411b738a2 (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/state.go')
-rw-r--r--internal/client/ui/core/state/state.go29
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{}{}
}
}