summaryrefslogtreecommitdiff
path: root/internal/client/ui/core/chat
diff options
context:
space:
mode:
Diffstat (limited to 'internal/client/ui/core/chat')
-rw-r--r--internal/client/ui/core/chat/chat.go32
1 files changed, 30 insertions, 2 deletions
diff --git a/internal/client/ui/core/chat/chat.go b/internal/client/ui/core/chat/chat.go
index 09b3872..bc3df81 100644
--- a/internal/client/ui/core/chat/chat.go
+++ b/internal/client/ui/core/chat/chat.go
@@ -519,7 +519,21 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) {
}
if m.receiverIndex != -1 {
- // TODO: unlock user
+ userId := state.Data.Signals[m.receiverIndex]
+
+ if userId == *state.UserID {
+ return m, nil
+ }
+
+ if _, ok := state.State.BlockedUsers[userId]; !ok {
+ return m, nil
+ }
+
+ return m, gateway.Send(&packet.BlockUser{
+ User: userId,
+ Block: false,
+ })
+
} else {
networkId := state.NetworkId(m.networkIndex)
network := state.State.Networks[*networkId]
@@ -558,7 +572,21 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) {
return m, nil
}
if m.receiverIndex != -1 {
- // TODO: block user
+ userId := state.Data.Signals[m.receiverIndex]
+
+ if userId == *state.UserID {
+ return m, nil
+ }
+
+ if _, ok := state.State.BlockedUsers[userId]; ok {
+ return m, nil
+ }
+
+ return m, gateway.Send(&packet.BlockUser{
+ User: userId,
+ Block: true,
+ })
+
} else {
networkId := state.NetworkId(m.networkIndex)
network := state.State.Networks[*networkId]