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

View file

@ -428,7 +428,7 @@ export default class MImageBody extends React.Component<IBodyProps, IState> {
// Overidden by MStickerBody // Overidden by MStickerBody
protected wrapImage(contentUrl: string, children: JSX.Element): JSX.Element { 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 } { children }
</a>; </a>;
} }

View file

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