@@ -185,6 +185,10 @@ export function getHandlerTile(ev: MatrixEvent): string {
185185 return stateEventTileTypes [ type ] ;
186186 }
187187
188+ if ( ev . isRedacted ( ) ) {
189+ return "messages.MessageEvent" ;
190+ }
191+
188192 return eventTileTypes [ type ] ;
189193}
190194
@@ -762,7 +766,7 @@ export default class EventTile extends React.Component<IProps, IState> {
762766 } ;
763767
764768 private async verifyEvent ( mxEvent : MatrixEvent ) : Promise < void > {
765- if ( ! mxEvent . isEncrypted ( ) ) {
769+ if ( ! mxEvent . isEncrypted ( ) || mxEvent . isRedacted ( ) ) {
766770 return ;
767771 }
768772
@@ -1020,8 +1024,8 @@ export default class EventTile extends React.Component<IProps, IState> {
10201024 return < E2ePadlockUndecryptable /> ;
10211025 }
10221026
1023- // event is encrypted, display padlock corresponding to whether or not it is verified
1024- if ( ev . isEncrypted ( ) ) {
1027+ // event is encrypted and not redacted , display padlock corresponding to whether or not it is verified
1028+ if ( ev . isEncrypted ( ) && ! ev . isRedacted ( ) ) {
10251029 if ( this . state . verified === E2EState . Normal ) {
10261030 return ; // no icon if we've not even cross-signed the user
10271031 } else if ( this . state . verified === E2EState . Verified ) {
@@ -1047,6 +1051,9 @@ export default class EventTile extends React.Component<IProps, IState> {
10471051 if ( ev . isState ( ) ) {
10481052 return ; // we expect this to be unencrypted
10491053 }
1054+ if ( ev . isRedacted ( ) ) {
1055+ return ; // we expect this to be unencrypted
1056+ }
10501057 // if the event is not encrypted, but it's an e2e room, show the open padlock
10511058 return < E2ePadlockUnencrypted /> ;
10521059 }
@@ -1611,8 +1618,8 @@ function isMessageEvent(ev: MatrixEvent): boolean {
16111618}
16121619
16131620export function haveTileForEvent ( e : MatrixEvent , showHiddenEvents ?: boolean ) : boolean {
1614- // Only messages have a tile (black-rectangle) if redacted
1615- if ( e . isRedacted ( ) && ! isMessageEvent ( e ) ) return false ;
1621+ // Only show "Message deleted" tile for message or encrypted events
1622+ if ( e . isRedacted ( ) && ! e . isEncrypted ( ) && ! isMessageEvent ( e ) ) return false ;
16161623
16171624 // No tile for replacement events since they update the original tile
16181625 if ( e . isRelation ( "m.replace" ) ) return false ;
0 commit comments