mirror of
https://github.com/element-hq/element-web.git
synced 2024-12-14 23:22:27 +03:00
Merge branch 'export-conversations' of https://github.com/jaiwanth-v/matrix-react-sdk into export-conversations
This commit is contained in:
commit
c62210b07c
3 changed files with 10 additions and 11 deletions
|
@ -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") {
|
||||||
|
|
|
@ -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>;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue