Compare commits

..
3 changed files with 17 additions and 6 deletions
+4 -2
View File
@@ -34,8 +34,10 @@ public class WindowData
public class ExtraUsage public class ExtraUsage
{ {
[JsonPropertyName("is_enabled")] public bool IsEnabled { get; set; } [JsonPropertyName("is_enabled")] public bool IsEnabled { get; set; }
[JsonPropertyName("currency")] public string? Currency { get; set; } [JsonPropertyName("currency")] public string? Currency { get; set; }
[JsonPropertyName("used_credits")] public double? UsedCredits { get; set; }
[JsonPropertyName("monthly_limit")] public double? MonthlyLimit { get; set; }
} }
public class BootstrapResponse public class BootstrapResponse
+4 -3
View File
@@ -247,9 +247,10 @@ public partial class PopupWindow : Window
var prepaid = VM.Prepaid; var prepaid = VM.Prepaid;
var currency = VM.ExtraUsage?.Currency ?? overage?.Currency ?? "$"; var currency = VM.ExtraUsage?.Currency ?? overage?.Currency ?? "$";
var spent = overage?.UsedCredits ?? 0; // Fall back to extra_usage fields when the overage/prepaid endpoints return nothing
var limit = overage?.MonthlyCreditLimit ?? 0; var spent = overage?.UsedCredits ?? VM.ExtraUsage?.UsedCredits ?? 0;
var balance = prepaid?.Amount ?? 0; var limit = overage?.MonthlyCreditLimit ?? VM.ExtraUsage?.MonthlyLimit ?? 0;
var balance = prepaid?.Amount ?? 0;
UIElement MakeRow(string label, string value) UIElement MakeRow(string label, string value)
{ {
+9 -1
View File
@@ -147,7 +147,15 @@ public class UsageViewModel : INotifyPropertyChanged
await Application.Current.Dispatcher.InvokeAsync(() => await Application.Current.Dispatcher.InvokeAsync(() =>
{ {
if (limits.Count > 0) { Limits = limits; Overage = overage; Prepaid = prepaid; ExtraUsage = extraUsage; } if (limits.Count > 0)
{
Limits = limits;
Overage = overage;
Prepaid = prepaid;
// Only clear ExtraUsage if the API explicitly disables it; keep cached value
// if the HTTP endpoint omits the field (it often does for non-browser clients)
if (extraUsage != null) ExtraUsage = extraUsage;
}
if (!string.IsNullOrEmpty(planLabel)) PlanLabel = planLabel; if (!string.IsNullOrEmpty(planLabel)) PlanLabel = planLabel;
if (!string.IsNullOrEmpty(email)) UserEmail = email; if (!string.IsNullOrEmpty(email)) UserEmail = email;
IsSignedIn = true; IsSignedIn = true;