diff options
author | Tulir Asokan <tulir@maunium.net> | 2020-03-01 22:35:21 +0200 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2020-03-01 22:35:25 +0200 |
commit | c829e436e46ace700045eaaf31bc4abf286e1156 (patch) | |
tree | 17fc5584554352279419759d273d283a130e3579 /ui/room-view.go | |
parent | 5ea77a6c5f1ad351cdc0159181cc45ae3b1f3d1a (diff) |
Implement sending redactions
Diffstat (limited to 'ui/room-view.go')
-rw-r--r-- | ui/room-view.go | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/ui/room-view.go b/ui/room-view.go index 0e728a3..11b4508 100644 --- a/ui/room-view.go +++ b/ui/room-view.go @@ -190,7 +190,7 @@ func (view *RoomView) OnSelect(message *messages.UIMessage) { case SelectReact: go view.SendReaction(message.EventID, view.selectContent) case SelectRedact: - // TODO redact + go view.Redact(message.EventID, view.selectContent) } view.selecting = false view.selectContent = "" @@ -580,6 +580,21 @@ func (view *RoomView) InputSubmit(text string) { view.SetInputText("") } +func (view *RoomView) Redact(eventID, reason string) { + defer debug.Recover() + err := view.parent.matrix.Redact(view.Room.ID, eventID, reason) + if err != nil { + if httpErr, ok := err.(mautrix.HTTPError); ok { + err = httpErr + if respErr := httpErr.RespError; respErr != nil { + err = respErr + } + } + view.AddServiceMessage(fmt.Sprintf("Failed to redact message: %v", err)) + view.parent.parent.Render() + } +} + func (view *RoomView) SendReaction(eventID string, reaction string) { defer debug.Recover() debug.Print("Reacting to", eventID, "in", view.Room.ID, "with", reaction) |