From 34bafee3aafc24b415b9b34ac79f1e2d7de8c9ff Mon Sep 17 00:00:00 2001 From: Daniel <50052685+schroda@users.noreply.github.com> Date: Sun, 1 Jan 2023 17:58:23 +0100 Subject: [PATCH] fix library update progress rendering (#210) * Fix library update progress rendering The websocket sends a list with mangas for each category (completed, running, pending) instead of a number. This resulted in the progress to always be 0 * Prevent TypeError The "UpdateStatus" can have a "statusMap" that contains not data. Co-authored-by: schroda --- src/components/library/UpdateChecker.tsx | 6 ++++-- src/typings.d.ts | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/components/library/UpdateChecker.tsx b/src/components/library/UpdateChecker.tsx index 678cb94a..b7310b56 100644 --- a/src/components/library/UpdateChecker.tsx +++ b/src/components/library/UpdateChecker.tsx @@ -46,10 +46,12 @@ function UpdateChecker() { const wsc = new WebSocket(`${baseWebsocketUrl}/api/v1/update`); wsc.onmessage = (e) => { const data = JSON.parse(e.data) as IUpdateStatus; - const { COMPLETE, RUNNING, PENDING } = data.statusMap; + const { COMPLETE = [], RUNNING = [], PENDING = [] } = data.statusMap; setLoading(data.running); - const currentProgress = 100 * (COMPLETE / (COMPLETE + RUNNING + PENDING)); + const currentProgress = 100 * ( + COMPLETE.length / (COMPLETE.length + RUNNING.length + PENDING.length) + ); setProgress(Number.isNaN(currentProgress) ? 0 : currentProgress); }; diff --git a/src/typings.d.ts b/src/typings.d.ts index 2fcc9fe0..dd189523 100644 --- a/src/typings.d.ts +++ b/src/typings.d.ts @@ -197,9 +197,9 @@ interface IQueue { interface IUpdateStatus { running: boolean statusMap: { - COMPLETE: number, - RUNNING: number, - PENDING: number + COMPLETE?: IManga[], + RUNNING?: IManga[], + PENDING?: IManga[] } }