@ -507,62 +507,6 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
return current ;
}
public async getQuoteAttachment ( attachments : any , preview : any ) {
if ( attachments && attachments . length ) {
return Promise . all (
attachments
. filter (
( attachment : any ) = >
attachment && attachment . contentType && ! attachment . pending && ! attachment . error
)
. slice ( 0 , 1 )
. map ( async ( attachment : any ) = > {
const { fileName , thumbnail , contentType } = attachment ;
return {
contentType ,
// Our protos library complains about this field being undefined, so we
// force it to null
fileName : fileName || null ,
thumbnail : thumbnail
? {
. . . ( await loadAttachmentData ( thumbnail ) ) ,
objectUrl : getAbsoluteAttachmentPath ( thumbnail . path ) ,
}
: null ,
} ;
} )
) ;
}
if ( preview && preview . length ) {
return Promise . all (
preview
. filter ( ( item : any ) = > item && item . image )
. slice ( 0 , 1 )
. map ( async ( attachment : any ) = > {
const { image } = attachment ;
const { contentType } = image ;
return {
contentType ,
// Our protos library complains about this field being undefined, so we
// force it to null
fileName : null ,
thumbnail : image
? {
. . . ( await loadAttachmentData ( image ) ) ,
objectUrl : getAbsoluteAttachmentPath ( image . path ) ,
}
: null ,
} ;
} )
) ;
}
return [ ] ;
}
public async makeQuote ( quotedMessage : MessageModel ) : Promise < ReplyingToMessageProps | null > {
const attachments = quotedMessage . get ( 'attachments' ) ;
const preview = quotedMessage . get ( 'preview' ) ;
@ -2099,6 +2043,66 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
}
return false ;
}
private async getQuoteAttachment ( attachments : any , preview : any ) {
if ( attachments ? . length ) {
return Promise . all (
attachments
. filter (
( attachment : any ) = >
attachment &&
attachment . contentType &&
! attachment . pending &&
! attachment . error &&
attachment ? . thumbnail ? . path // loadAttachmentData throws if the thumbnail.path is not set
)
. slice ( 0 , 1 )
. map ( async ( attachment : any ) = > {
const { fileName , thumbnail , contentType } = attachment ;
return {
contentType ,
// Our protos library complains about this field being undefined, so we
// force it to null
fileName : fileName || null ,
thumbnail : thumbnail
? {
. . . ( await loadAttachmentData ( thumbnail ) ) ,
objectUrl : getAbsoluteAttachmentPath ( thumbnail . path ) ,
}
: null ,
} ;
} )
) ;
}
if ( preview ? . length ) {
return Promise . all (
preview
. filter ( ( attachment : any ) = > attachment ? . image ? . path ) // loadAttachmentData throws if the image.path is not set
. slice ( 0 , 1 )
. map ( async ( attachment : any ) = > {
const { image } = attachment ;
const { contentType } = image ;
return {
contentType ,
// Our protos library complains about this field being undefined, so we
// force it to null
fileName : null ,
thumbnail : image
? {
. . . ( await loadAttachmentData ( image ) ) ,
objectUrl : getAbsoluteAttachmentPath ( image . path ) ,
}
: null ,
} ;
} )
) ;
}
return [ ] ;
}
}
const throttledAllConversationsDispatch = debounce (