diff --git a/src/pages/app/capacity/index.astro b/src/pages/app/capacity/index.astro index 99ecef22..1fc30f8b 100644 --- a/src/pages/app/capacity/index.astro +++ b/src/pages/app/capacity/index.astro @@ -26,9 +26,14 @@ const [snapshot, access, preferences, registrationKey, requestPage, membershipPa team ? api.request('GET', `/v1/teams/${encodeURIComponent(team.id)}/capacity-provider-memberships?limit=100`).catch(() => null) : null, ]); const usagePages = team && snapshot ? await Promise.all(snapshot.projects.map((project) => api.request('GET', `${base}/usage?projectId=${encodeURIComponent(String(project.id))}&limit=100`).catch(() => null))) : []; +const providerStatuses = team && snapshot ? await Promise.all(snapshot.providers.map((provider: any) => { + const providerId=String(provider.providerId ?? provider.id ?? ''); + return providerId?api.request('GET',`/v1/teams/${encodeURIComponent(team.id)}/capacity-providers/${encodeURIComponent(providerId)}/status`).catch(()=>null):null; +})) : []; const reservationItems = snapshot?.reservations ?? []; const usageItems = usagePages.flatMap(items); const ledgerItems = snapshot?.ledger ?? []; const canManage = Boolean((access?.roles ?? access?.access?.roles ?? []).some((role: string) => ['team_owner', 'project_lead'].includes(role))); const csrfToken = ensureCsrfToken(Astro); const providerRequests = items(requestPage); const memberships = items(membershipPage); +const providerAlerts=providerStatuses.flatMap((status:any)=>Array.isArray(status?.alerts)?status.alerts:[]); const object = (value: unknown) => value && typeof value === 'object' && !Array.isArray(value) ? value as Record : {}; const number = (...values: unknown[]) => values.map(Number).find(Number.isFinite) ?? 0; const fleet = (snapshot?.providers ?? []).map((provider: any) => { @@ -54,6 +59,7 @@ const registrationBase = `/v1/teams/${encodeURIComponent(team?.id ?? '')}/capaci {!team ? : <> + {providerAlerts.length?{providerAlerts.map((alert:any)=>)}:null}