@@ -15,6 +15,7 @@ limitations under the License.
1515*/ 
1616
1717import  {  MatrixEvent  }  from  "matrix-js-sdk/src/models/event" ; 
18+ import  {  MsgType ,  RelationType  }  from  "matrix-js-sdk/src/@types/event" ; 
1819
1920import  {  IPreview  }  from  "./IPreview" ; 
2021import  {  TagID  }  from  "../models" ; 
@@ -27,16 +28,17 @@ export class MessageEventPreview implements IPreview {
2728    public  getTextFor ( event : MatrixEvent ,  tagId ?: TagID ,  isThread ?: boolean ) : string  { 
2829        let  eventContent  =  event . getContent ( ) ; 
2930
30-         if  ( event . isRelation ( "m.replace" ) )  { 
31+         if  ( event . isRelation ( RelationType . Replace ) )  { 
3132            // It's an edit, generate the preview on the new text 
3233            eventContent  =  event . getContent ( ) [ 'm.new_content' ] ; 
3334        } 
3435
35-         if  ( ! eventContent   ||   ! eventContent [ 'body' ] )  return  null ;  // invalid for our purposes 
36+         if  ( ! eventContent ?. [ 'body' ] )  return  null ;  // invalid for our purposes 
3637
37-         let  body  =  ( eventContent [ 'body' ]  ||  '' ) . trim ( ) ; 
38-         const  msgtype  =  eventContent [ 'msgtype' ] ; 
39-         if  ( ! body  ||  ! msgtype )  return  null ;  // invalid event, no preview 
38+         let  body  =  eventContent [ 'body' ] . trim ( ) ; 
39+         if  ( ! body )  return  null ;  // invalid event, no preview 
40+         // A msgtype is actually required in the spec but the app is a bit softer on this requirement 
41+         const  msgtype  =  eventContent [ 'msgtype' ]  ??  MsgType . Text ; 
4042
4143        const  hasHtml  =  eventContent . format  ===  "org.matrix.custom.html"  &&  eventContent . formatted_body ; 
4244        if  ( hasHtml )  { 
@@ -62,7 +64,7 @@ export class MessageEventPreview implements IPreview {
6264
6365        body  =  sanitizeForTranslation ( body ) ; 
6466
65-         if  ( msgtype  ===  'm.emote' )  { 
67+         if  ( msgtype  ===  MsgType . Emote )  { 
6668            return  _t ( "* %(senderName)s %(emote)s" ,  {  senderName : getSenderName ( event ) ,  emote : body  } ) ; 
6769        } 
6870
0 commit comments