diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-01-25 18:55:33 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-01-25 18:55:33 +0200 |
| commit | d06bbbe2f60e671687b7d248d7304c4a4632c607 (patch) | |
| tree | d98f5e6352f6105b7d8f228ac24595545868c92b | |
| parent | f3b89094c5f0bbce82899416356aab1d08100376 (diff) | |
Added banning from chat using "B"
| -rw-r--r-- | internal/client/ui/core/chat/chat.go | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/internal/client/ui/core/chat/chat.go b/internal/client/ui/core/chat/chat.go index 0675230..67079f9 100644 --- a/internal/client/ui/core/chat/chat.go +++ b/internal/client/ui/core/chat/chat.go @@ -451,7 +451,33 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) { User: member.UserID, }) case "B": - // TODO: ban + 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 + } + + cmd := func() tea.Msg { + return ui.BanReasonPopupMsg{ + Network: *state.NetworkId(m.networkIndex), + User: member.UserID, + } + } + return m, cmd // Owner case "D": |
