From 2083ef47c0a86313b7fb1c12ccdf5a41be7bff35 Mon Sep 17 00:00:00 2001 From: Juan Castro Date: Thu, 10 Sep 2026 18:32:31 -0400 Subject: [PATCH] fix: the plan card counted no seats It filtered on `org_owned`, but the GUI annotates members to `orgOwned` -- so the count was always zero and the card read "billed for 0 accounts" beside an accounts table saying two. Uses `membersBillingSummary` now, the same count the table shows, which also excludes suspended seats: they stop costing a per-account charge, which the naive filter would have billed for. --- src/gui/src/UI/Dashboard/TabTeams.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gui/src/UI/Dashboard/TabTeams.js b/src/gui/src/UI/Dashboard/TabTeams.js index 42f3db4a3..b1a701f19 100644 --- a/src/gui/src/UI/Dashboard/TabTeams.js +++ b/src/gui/src/UI/Dashboard/TabTeams.js @@ -177,7 +177,9 @@ const renderMemberView = () => { const renderPlan = () => teamPlanHtml({ plan: state.plan, - seats: state.members.filter(m => m.org_owned).length, + // The same count the accounts table shows: suspended seats are excluded, + // because they stop costing a per-account charge. + seats: membersBillingSummary(annotateMembers(state.members, state.audit)).billed, canBuy: window.team_billing_ui === true, });