mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-15 20:54:59 +08:00
Merge branch 'export-conversations' of https://github.com/jaiwanth-v/matrix-react-sdk into export-conversations
This commit is contained in:
commit
c62210b07c
@ -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") {
|
||||
|
@ -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>;
|
||||
}
|
||||
|
@ -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>;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user