@@ -17,7 +17,7 @@ limitations under the License.
1717*/
1818
1919import React , { createRef , useContext } from "react" ;
20- import { EventStatus , MatrixEvent } from "matrix-js-sdk/src/models/event" ;
20+ import { EventStatus , MatrixEvent , MatrixEventEvent } from "matrix-js-sdk/src/models/event" ;
2121import { EventType , RelationType } from "matrix-js-sdk/src/@types/event" ;
2222import { Relations } from "matrix-js-sdk/src/models/relations" ;
2323import { RoomMemberEvent } from "matrix-js-sdk/src/models/room-member" ;
@@ -145,6 +145,11 @@ export default class MessageContextMenu extends React.Component<IProps, IState>
145145
146146 public componentDidMount ( ) : void {
147147 MatrixClientPeg . get ( ) . on ( RoomMemberEvent . PowerLevel , this . checkPermissions ) ;
148+
149+ // re-check the permissions on send progress (`maySendRedactionForEvent` only returns true for events that have
150+ // been fully sent and echoed back, and we want to ensure the "Remove" option is added once that happens.)
151+ this . props . mxEvent . on ( MatrixEventEvent . Status , this . checkPermissions ) ;
152+
148153 this . checkPermissions ( ) ;
149154 }
150155
@@ -153,6 +158,7 @@ export default class MessageContextMenu extends React.Component<IProps, IState>
153158 if ( cli ) {
154159 cli . removeListener ( RoomMemberEvent . PowerLevel , this . checkPermissions ) ;
155160 }
161+ this . props . mxEvent . removeListener ( MatrixEventEvent . Status , this . checkPermissions ) ;
156162 }
157163
158164 private checkPermissions = ( ) : void => {
0 commit comments