Handle non-media attachments

This commit is contained in:
Jaiwanth 2021-05-31 23:50:55 +05:30
parent 01284ef8c6
commit a0a604618c
3 changed files with 18 additions and 2 deletions

View file

@ -102,6 +102,8 @@ export default class MFileBody extends React.Component {
tileShape: PropTypes.string,
/* whether or not to show the default placeholder for the file. Defaults to true. */
showGenericPlaceholder: PropTypes.bool,
/* to set source to local file path during export */
mediaSrc: PropTypes.string,
};
static defaultProps = {
@ -178,7 +180,13 @@ export default class MFileBody extends React.Component {
);
}
if (isEncrypted) {
if (this.props.mediaSrc) {
return <span className="mx_MFileBody">
<a href={this.props.mediaSrc}>
{ placeholder }
</a>
</span>;
} else if (isEncrypted) {
if (this.state.decryptedBlob === null) {
// Need to decrypt the attachment
// Wait for the user to click on the link before downloading

View file

@ -236,6 +236,14 @@ export default class HTMLExporter extends Exporter {
this.zip.file(filePath, blob);
break;
}
case "m.file": {
const blob = await this.getMediaBlob(mxEv);
const fileName = mxEv.getContent().body;
const filePath = `files/${fileName}`;
eventTile = this.getEventTile(mxEv, joined, filePath);
this.zip.file(filePath, blob);
break;
}
default:
eventTile = this.getEventTile(mxEv, joined);
break;