Parse plan label from capabilities array instead of plan_type

This commit is contained in:
SuperDooper
2026-05-08 19:14:55 +02:00
parent 8c14f59c42
commit 5db9321ac4
+12 -11
View File
@@ -395,20 +395,21 @@ public class UsageViewModel : INotifyPropertyChanged
} }
string? planLabel = null; string? planLabel = null;
if (!string.IsNullOrEmpty(orgId)) if (root.TryGetProperty("account", out var acctPlan) &&
acctPlan.TryGetProperty("memberships", out var plMems) && plMems.GetArrayLength() > 0 &&
plMems[0].TryGetProperty("organization", out var plOrg) &&
plOrg.TryGetProperty("capabilities", out var caps) &&
caps.ValueKind == System.Text.Json.JsonValueKind.Array)
{ {
// Try account.memberships[0].organization.plan_type foreach (var cap in caps.EnumerateArray())
if (root.TryGetProperty("account", out var acctPlan) &&
acctPlan.TryGetProperty("memberships", out var plMems) && plMems.GetArrayLength() > 0)
{ {
var firstMem = plMems[0]; var s = cap.GetString() ?? "";
if (firstMem.TryGetProperty("organization", out var plOrg) && if (s.StartsWith("claude_", StringComparison.OrdinalIgnoreCase))
plOrg.TryGetProperty("plan_type", out var pt) &&
pt.ValueKind == System.Text.Json.JsonValueKind.String)
{ {
var raw = pt.GetString() ?? ""; var name = s.Substring("claude_".Length);
if (raw.Length > 0) if (name.Length > 0)
planLabel = char.ToUpper(raw[0]) + raw.Substring(1).ToLower(); planLabel = char.ToUpper(name[0]) + name.Substring(1).ToLower();
break;
} }
} }
} }