mirror of
https://github.com/element-hq/element-web.git
synced 2024-12-11 15:36:02 +03:00
Handle non-media attachments
This commit is contained in:
parent
01284ef8c6
commit
a0a604618c
3 changed files with 18 additions and 2 deletions
|
@ -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
|
||||
|
|
|
@ -936,7 +936,7 @@ export default class EventTile extends React.Component<IProps, IState> {
|
|||
avatar = (
|
||||
<div className="mx_EventTile_avatar">
|
||||
<MemberAvatar
|
||||
avatarSrc = {this.props.avatarSrc}
|
||||
avatarSrc={this.props.avatarSrc}
|
||||
member={member}
|
||||
width={avatarSize}
|
||||
height={avatarSize}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue