From fd79b97bb5cf9fafdacaa82b9fc1e4e68e7cb7c7 Mon Sep 17 00:00:00 2001 From: Pas <74743263+Pasithea0@users.noreply.github.com> Date: Sat, 24 Jan 2026 14:23:55 -0700 Subject: [PATCH] fix backend selector loading forever --- src/components/form/BackendSelector.tsx | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/components/form/BackendSelector.tsx b/src/components/form/BackendSelector.tsx index 9b7e63f5..f12f8750 100644 --- a/src/components/form/BackendSelector.tsx +++ b/src/components/form/BackendSelector.tsx @@ -140,16 +140,28 @@ export function BackendSelector({ })); setBackendOptions(options); - const promises = options.map(async (option) => { + // Fetch each backend's meta independently and update state as each completes + // This prevents one slow/down backend from blocking the others + options.forEach(async (option) => { try { const meta = await getBackendMeta(option.url); - return { ...option, meta, loading: false, error: false }; + setBackendOptions((prev) => + prev.map((opt) => + opt.url === option.url + ? { ...opt, meta, loading: false, error: false } + : opt, + ), + ); } catch { - return { ...option, meta: null, loading: false, error: true }; + setBackendOptions((prev) => + prev.map((opt) => + opt.url === option.url + ? { ...opt, meta: null, loading: false, error: true } + : opt, + ), + ); } }); - const results = await Promise.all(promises); - setBackendOptions(results); }; if (availableUrls.length > 0) {