aboutsummaryrefslogtreecommitdiff
path: root/ui/room-view.go
diff options
context:
space:
mode:
authorTulir Asokan <tulir@maunium.net>2020-03-01 22:35:21 +0200
committerTulir Asokan <tulir@maunium.net>2020-03-01 22:35:25 +0200
commitc829e436e46ace700045eaaf31bc4abf286e1156 (patch)
tree17fc5584554352279419759d273d283a130e3579 /ui/room-view.go
parent5ea77a6c5f1ad351cdc0159181cc45ae3b1f3d1a (diff)
Implement sending redactions
Diffstat (limited to 'ui/room-view.go')
-rw-r--r--ui/room-view.go17
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)