Use ref for progress updates

This commit is contained in:
Jaiwanth 2021-07-02 16:52:33 +05:30
parent 3dcc7738f6
commit 87c624d085
5 changed files with 20 additions and 17 deletions

View file

@ -7,6 +7,7 @@ import { haveTileForEvent } from "../../components/views/rooms/EventTile";
import { exportTypes } from "./exportUtils";
import { exportOptions } from "./exportUtils";
import { textForEvent } from "../../TextForEvent";
import { MutableRefObject } from "react";
export default class PlainTextExporter extends Exporter {
protected totalSize: number;
@ -16,9 +17,9 @@ export default class PlainTextExporter extends Exporter {
room: Room,
exportType: exportTypes,
exportOptions: exportOptions,
setProgressText: React.Dispatch<React.SetStateAction<string>>,
exportProgressRef: MutableRefObject<HTMLParagraphElement>,
) {
super(room, exportType, exportOptions, setProgressText);
super(room, exportType, exportOptions, exportProgressRef);
this.totalSize = 0;
this.mediaOmitText = !this.exportOptions.attachmentsIncluded
? _t("Media omitted")
@ -86,7 +87,7 @@ export default class PlainTextExporter extends Exporter {
let content = "";
for (let i = 0; i < events.length; i++) {
const event = events[i];
if (i % 100 == 0) this.updateProgress(`Processing event ${i ? i : 1} out of ${events.length}`, false, true);
this.updateProgress(`Processing event ${i + 1} out of ${events.length}`, false, true);
if (this.cancelled) return this.cleanUp();
if (!haveTileForEvent(event)) continue;
const textForEvent = await this._textForEvent(event);