From da9b926b25888ba2eeee823f4eae950ec226a8c5 Mon Sep 17 00:00:00 2001 From: Aspyryan <52763578+Aspyryan@users.noreply.github.com> Date: Thu, 20 Feb 2025 17:14:13 +0100 Subject: [PATCH] Fixed tracker uploadOfflineRecording (#3048) Co-authored-by: Jasper Baetsle --- tracker/tracker/src/main/app/index.ts | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/tracker/tracker/src/main/app/index.ts b/tracker/tracker/src/main/app/index.ts index 24c40b5c5..91a18ae39 100644 --- a/tracker/tracker/src/main/app/index.ts +++ b/tracker/tracker/src/main/app/index.ts @@ -918,7 +918,7 @@ export default class App { private postToWorker(messages: Array) { this.worker?.postMessage(messages) this.commitCallbacks.forEach((cb) => cb(messages)) - messages.length = 0 + //messages.length = 0 } private delay = 0 @@ -1638,18 +1638,21 @@ export default class App { flushBuffer = async (buffer: Message[]) => { return new Promise((res) => { - let ended = false - const messagesBatch: Message[] = [buffer.shift() as unknown as Message] - while (!ended) { - const nextMsg = buffer[0] - if (!nextMsg || nextMsg[0] === MType.Timestamp) { - ended = true - } else { - messagesBatch.push(buffer.shift() as unknown as Message) - } + if (buffer.length === 0) { + res(null); + return; } - this.postToWorker(messagesBatch) - res(null) + + // Since the first element is always a Timestamp, include it by default. + let endIndex = 1; + // Continue until you hit another Timestamp or run out of messages. + while (endIndex < buffer.length && buffer[endIndex][0] !== MType.Timestamp) { + endIndex++; + } + + const messagesBatch = buffer.splice(0, endIndex); + this.postToWorker(messagesBatch); + res(null); }) }