From 5b478c11eb122aab44061881e2a7b6a32b4128ee Mon Sep 17 00:00:00 2001 From: ompathak2004 Date: Thu, 6 Feb 2025 04:23:42 +0530 Subject: [PATCH] fix: prevent multiple concurrent fetches in updateSystemList function fix: correctly reset isFetchingSystems flag in updateSystemList function --- beszel/site/src/lib/utils.ts | 41 +++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/beszel/site/src/lib/utils.ts b/beszel/site/src/lib/utils.ts index 83390f5..7ccbda3 100644 --- a/beszel/site/src/lib/utils.ts +++ b/beszel/site/src/lib/utils.ts @@ -42,23 +42,34 @@ const verifyAuth = () => { }) } +let isFetchingSystems = false; + export const updateSystemList = async () => { - try { - const records = await pb - .collection("systems") - .getFullList({ sort: "+name", fields: "id,name,host,info,status" }) - if (records.length) { - $systems.set(records) - } else { - verifyAuth() - } - } catch (err) { - // @ts-ignore supress pocketbase auto cancellation error - if (err.isAbort) { - return - } + + if (isFetchingSystems) return; + isFetchingSystems = true + + try { + const records = await pb + .collection("systems") + .getFullList({ sort: "+name", fields: "id,name,host,info,status" }); + + if (records.length) { + $systems.set(records); + } else { + verifyAuth(); + } + } catch (e: any) { + // Suppressing pocketbase auto-cancellation error + + if (e.isAbort || e.status === 0) { + return; + } + } finally { + isFetchingSystems = false } -} +}; + export const updateAlerts = () => { pb.collection("alerts")