Merge branch 'export-conversations' of https://github.com/jaiwanth-v/matrix-react-sdk into export-conversations

This commit is contained in:
Jaiwanth 2021-08-13 08:59:39 +05:30
commit c62210b07c
3 changed files with 10 additions and 11 deletions

View file

@ -167,7 +167,7 @@ function textForTopicEvent(ev: MatrixEvent): () => string | null {
}
function textForRoomAvatarEvent(ev: MatrixEvent): () => string | null {
const senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
const senderDisplayName = ev?.sender?.name || ev.getSender();
return () => _t('%(senderDisplayName)s changed the room avatar.', { senderDisplayName });
}
@ -298,11 +298,12 @@ function textForMessageEvent(ev: MatrixEvent): () => string | null {
if (ev.isRedacted()) {
message = _t("Message deleted");
const unsigned = ev.getUnsigned();
const redactedBecauseUserId = unsigned && unsigned.redacted_because && unsigned.redacted_because.sender;
const redactedBecauseUserId = unsigned?.redacted_because?.sender;
if (redactedBecauseUserId && redactedBecauseUserId !== ev.getSender()) {
const room = MatrixClientPeg.get().getRoom(ev.getRoomId());
const sender = room && room.getMember(redactedBecauseUserId);
message = _t("Message deleted by %(name)s", { name: sender ? sender.name : redactedBecauseUserId });
const sender = room?.getMember(redactedBecauseUserId);
message = _t("Message deleted by %(name)s", { name: sender?.name
|| redactedBecauseUserId });
}
}
if (ev.getContent().msgtype === "m.emote") {

View file

@ -428,7 +428,7 @@ export default class MImageBody extends React.Component<IBodyProps, IState> {
// Overidden by MStickerBody
protected wrapImage(contentUrl: string, children: JSX.Element): JSX.Element {
return <a href={contentUrl} target={this.props.forExport ? "__blank" : undefined} onClick={this.onClick}>
return <a href={contentUrl} target={this.props.forExport ? "_blank" : undefined} onClick={this.onClick}>
{ children }
</a>;
}

View file

@ -32,9 +32,9 @@ type BlobFile = {
};
export default abstract class Exporter {
protected files: BlobFile[];
protected files: BlobFile[] = [];
protected client: MatrixClient;
protected cancelled: boolean;
protected cancelled = false;
protected constructor(
protected room: Room,
@ -48,8 +48,6 @@ export default abstract class Exporter {
) {
throw new Error("Invalid export options");
}
this.cancelled = false;
this.files = [];
this.client = MatrixClientPeg.get();
window.addEventListener("beforeunload", this.onBeforeUnload);
}
@ -72,7 +70,7 @@ export default abstract class Exporter {
this.files.push(file);
}
protected async downloadZIP(): Promise<any> {
protected async downloadZIP(): Promise<string | null> {
const filename = `matrix-export-${formatFullDateNoDay(new Date())}.zip`;
const zip = new JSZip();
@ -258,5 +256,5 @@ export default abstract class Exporter {
return mxEv.getType() === attachmentTypes[0] || attachmentTypes.includes(mxEv.getContent().msgtype);
}
abstract export(): Promise<any>;
abstract export(): Promise<void>;
}