summaryrefslogtreecommitdiff
path: root/internal/client/ui/core
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-01-21 18:23:57 +0200
committerKyren223 <Kyren223@proton.me>2025-01-21 18:23:57 +0200
commitc02511af29295973c30b2a95c86ee9c40f764591 (patch)
tree7a72215a53081733a52c5f58287f98d5a36fa8f8 /internal/client/ui/core
parent8f87941f91fa4a3e98c4797b9c700b21d5037ade (diff)
Added the ability to kick someone by pressing "K" on his message in chat
Diffstat (limited to 'internal/client/ui/core')
-rw-r--r--internal/client/ui/core/chat/chat.go35
-rw-r--r--internal/client/ui/core/memberlist/memberlist.go6
2 files changed, 36 insertions, 5 deletions
diff --git a/internal/client/ui/core/chat/chat.go b/internal/client/ui/core/chat/chat.go
index b67e0bf..888ecd1 100644
--- a/internal/client/ui/core/chat/chat.go
+++ b/internal/client/ui/core/chat/chat.go
@@ -326,6 +326,41 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) {
m.style = editStyle
}
+ // Admin
+ case "K":
+ if m.selectedMessage == nil {
+ return m, nil
+ }
+ networkId := state.NetworkId(m.networkIndex)
+ network := state.State.Networks[*networkId]
+ senderId := m.selectedMessage.SenderID
+ member := state.State.Members[*networkId][senderId]
+
+ if !state.State.Members[*networkId][*state.UserID].IsAdmin {
+ return m, nil
+ }
+
+ if member.UserID == *state.UserID {
+ return m, nil
+ }
+
+ if member.IsAdmin && network.OwnerID != *state.UserID {
+ return m, nil
+ }
+
+ no := false
+ return m, gateway.Send(&packet.SetMember{
+ Member: &no,
+ Admin: nil,
+ Muted: nil,
+ Banned: nil,
+ BanReason: nil,
+ Network: *state.NetworkId(m.networkIndex),
+ User: member.UserID,
+ })
+ case "B":
+ // TODO: ban
+
// Owner
case "D":
if m.selectedMessage == nil {
diff --git a/internal/client/ui/core/memberlist/memberlist.go b/internal/client/ui/core/memberlist/memberlist.go
index 764613d..b531b14 100644
--- a/internal/client/ui/core/memberlist/memberlist.go
+++ b/internal/client/ui/core/memberlist/memberlist.go
@@ -174,10 +174,6 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) {
return m, nil
}
- if member.UserID == network.OwnerID {
- return m, nil
- }
-
no := false
return m, gateway.Send(&packet.SetMember{
Member: &no,
@@ -188,7 +184,7 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) {
Network: *state.NetworkId(m.networkIndex),
User: member.UserID,
})
- case "b":
+ case "B":
// TODO: ban
// Owner