Eliminate the use of MatrixClientPeg in utils (#10910)
This commit is contained in:
committed by
GitHub
parent
a0c2676c38
commit
30429df948
@@ -16,13 +16,11 @@ limitations under the License.
|
||||
|
||||
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
||||
import { Room } from "matrix-js-sdk/src/models/room";
|
||||
import { MatrixClient } from "matrix-js-sdk/src/client";
|
||||
import { Direction } from "matrix-js-sdk/src/models/event-timeline";
|
||||
import { saveAs } from "file-saver";
|
||||
import { logger } from "matrix-js-sdk/src/logger";
|
||||
import sanitizeFilename from "sanitize-filename";
|
||||
|
||||
import { MatrixClientPeg } from "../../MatrixClientPeg";
|
||||
import { ExportType, IExportOptions } from "./exportUtils";
|
||||
import { decryptFile } from "../DecryptFile";
|
||||
import { mediaFromContent } from "../../customisations/Media";
|
||||
@@ -39,7 +37,6 @@ type BlobFile = {
|
||||
|
||||
export default abstract class Exporter {
|
||||
protected files: BlobFile[] = [];
|
||||
protected client: MatrixClient;
|
||||
protected cancelled = false;
|
||||
|
||||
protected constructor(
|
||||
@@ -56,7 +53,6 @@ export default abstract class Exporter {
|
||||
) {
|
||||
throw new Error("Invalid export options");
|
||||
}
|
||||
this.client = MatrixClientPeg.get();
|
||||
window.addEventListener("beforeunload", this.onBeforeUnload);
|
||||
}
|
||||
|
||||
@@ -124,7 +120,7 @@ export default abstract class Exporter {
|
||||
}
|
||||
|
||||
protected setEventMetadata(event: MatrixEvent): MatrixEvent {
|
||||
const roomState = this.client.getRoom(this.room.roomId)?.currentState;
|
||||
const roomState = this.room.currentState;
|
||||
const sender = event.getSender();
|
||||
event.sender = (!!sender && roomState?.getSentinelMember(sender)) || null;
|
||||
if (event.getType() === "m.room.member") {
|
||||
@@ -151,7 +147,7 @@ export default abstract class Exporter {
|
||||
}
|
||||
|
||||
protected async getRequiredEvents(): Promise<MatrixEvent[]> {
|
||||
const eventMapper = this.client.getEventMapper();
|
||||
const eventMapper = this.room.client.getEventMapper();
|
||||
|
||||
let prevToken: string | null = null;
|
||||
let limit = this.getLimit();
|
||||
@@ -159,7 +155,7 @@ export default abstract class Exporter {
|
||||
|
||||
while (limit) {
|
||||
const eventsPerCrawl = Math.min(limit, 1000);
|
||||
const res = await this.client.createMessagesRequest(
|
||||
const res = await this.room.client.createMessagesRequest(
|
||||
this.room.roomId,
|
||||
prevToken,
|
||||
eventsPerCrawl,
|
||||
@@ -211,7 +207,7 @@ export default abstract class Exporter {
|
||||
const decryptionPromises = events
|
||||
.filter((event) => event.isEncrypted())
|
||||
.map((event) => {
|
||||
return this.client.decryptEventIfNeeded(event, {
|
||||
return this.room.client.decryptEventIfNeeded(event, {
|
||||
isRetry: true,
|
||||
emit: false,
|
||||
});
|
||||
|
||||
@@ -94,7 +94,7 @@ export default class HTMLExporter extends Exporter {
|
||||
const exportDate = formatFullDateNoDayNoTime(new Date());
|
||||
const creator = this.room.currentState.getStateEvents(EventType.RoomCreate, "")?.getSender();
|
||||
const creatorName = (creator ? this.room.getMember(creator)?.rawDisplayName : creator) || creator;
|
||||
const exporter = this.client.getUserId()!;
|
||||
const exporter = this.room.client.getSafeUserId();
|
||||
const exporterName = this.room.getMember(exporter)?.rawDisplayName;
|
||||
const topic = this.room.currentState.getStateEvents(EventType.RoomTopic, "")?.getContent()?.topic || "";
|
||||
const createdText = _t("%(creatorName)s created this room.", {
|
||||
@@ -282,7 +282,7 @@ export default class HTMLExporter extends Exporter {
|
||||
public getEventTile(mxEv: MatrixEvent, continuation: boolean): JSX.Element {
|
||||
return (
|
||||
<div className="mx_Export_EventWrapper" id={mxEv.getId()}>
|
||||
<MatrixClientContext.Provider value={this.client}>
|
||||
<MatrixClientContext.Provider value={this.room.client}>
|
||||
<EventTile
|
||||
mxEvent={mxEv}
|
||||
continuation={continuation}
|
||||
|
||||
@@ -47,7 +47,7 @@ export default class JSONExporter extends Exporter {
|
||||
const creator = this.room.currentState.getStateEvents(EventType.RoomCreate, "")?.getSender();
|
||||
const creatorName = (creator && this.room?.getMember(creator)?.rawDisplayName) || creator;
|
||||
const topic = this.room.currentState.getStateEvents(EventType.RoomTopic, "")?.getContent()?.topic || "";
|
||||
const exporter = this.client.getUserId()!;
|
||||
const exporter = this.room.client.getUserId()!;
|
||||
const exporterName = this.room?.getMember(exporter)?.rawDisplayName || exporter;
|
||||
const jsonObject = {
|
||||
room_name: this.room.name,
|
||||
|
||||
Reference in New Issue
Block a user