diff --git a/src/components/views/messages/MAudioBody.js b/src/components/views/messages/MAudioBody.js index 9a8d401185..2258aa1713 100644 --- a/src/components/views/messages/MAudioBody.js +++ b/src/components/views/messages/MAudioBody.js @@ -42,8 +42,9 @@ export default class MAudioBody extends React.Component { } _getContentUrl() { - if (this.props.forExport) return this.props.mxEvent.getContent().url; - const media = mediaFromContent(this.props.mxEvent.getContent()); + const content = this.props.mxEvent.getContent(); + if (this.props.forExport) return content.file?.url || content.url; + const media = mediaFromContent(content); if (media.isEncrypted) { return this.state.decryptedUrl; } else { diff --git a/src/components/views/messages/MFileBody.js b/src/components/views/messages/MFileBody.js index d1a2903d76..c33ad5f21b 100644 --- a/src/components/views/messages/MFileBody.js +++ b/src/components/views/messages/MFileBody.js @@ -186,8 +186,9 @@ export default class MFileBody extends React.Component { } if (this.props.forExport) { + const content = this.props.mxEvent.getContent(); return - + { placeholder } ; diff --git a/src/components/views/messages/MImageBody.js b/src/components/views/messages/MImageBody.js index 2916391f58..9229755d29 100644 --- a/src/components/views/messages/MImageBody.js +++ b/src/components/views/messages/MImageBody.js @@ -172,8 +172,9 @@ export default class MImageBody extends React.Component { } _getContentUrl() { - if (this.props.forExport) return this.props.mxEvent.getContent().url; - const media = mediaFromContent(this.props.mxEvent.getContent()); + const content = this.props.mxEvent.getContent(); + if (this.props.forExport) return content.url || content.file.url; + const media = mediaFromContent(content); if (media.isEncrypted) { return this.state.decryptedUrl; } else { diff --git a/src/components/views/messages/MVideoBody.tsx b/src/components/views/messages/MVideoBody.tsx index 505a1b5a7e..ec9cbcf7b5 100644 --- a/src/components/views/messages/MVideoBody.tsx +++ b/src/components/views/messages/MVideoBody.tsx @@ -78,8 +78,9 @@ export default class MVideoBody extends React.PureComponent { } private getContentUrl(): string|null { - if (this.props.forExport) return this.props.mxEvent.getContent().url; - const media = mediaFromContent(this.props.mxEvent.getContent()); + const content = this.props.mxEvent.getContent(); + if (this.props.forExport) return content.file?.url || content.url; + const media = mediaFromContent(content); if (media.isEncrypted) { return this.state.decryptedUrl; } else { diff --git a/src/utils/exportUtils/HtmlExport.tsx b/src/utils/exportUtils/HtmlExport.tsx index f96efaea4b..f05581a6cb 100644 --- a/src/utils/exportUtils/HtmlExport.tsx +++ b/src/utils/exportUtils/HtmlExport.tsx @@ -264,7 +264,8 @@ export default class HTMLExporter extends Exporter { let eventTileMarkup = renderToStaticMarkup(eventTile); if (filePath) { - eventTileMarkup = eventTileMarkup.split(mxEv.getContent().url).join(filePath); + const mxc = mxEv.getContent().url || mxEv.getContent().file?.url; + eventTileMarkup = eventTileMarkup.split(mxc).join(filePath); } if (hasAvatar) { eventTileMarkup = eventTileMarkup.replace( @@ -305,7 +306,7 @@ export default class HTMLExporter extends Exporter { } this.addFile(filePath, blob); } catch (e) { - console.log("Error while fetching file"); + console.log("Error while fetching file" + e); eventTile = await this.getEventTile( this.createModifiedEvent(_t("Error fetching file"), mxEv), joined,