Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions Sources/AgentBar/Localization/I18n.swift
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ enum I18n {
let missingTokenUsageResult: String
let missingWeeklyQuotaWindow: String
let availableResetCredits: String
let resetCreditDefaultTitle: String
let resetCreditNeverExpires: String
let resetCreditDetailsUnavailable: String
let noAvailableResetCredits: String
Expand Down Expand Up @@ -151,9 +150,9 @@ enum I18n {
func resetCreditExpiresOn(_ dateText: String) -> String {
switch I18n.language {
case .simplifiedChinese:
return "将于 \(dateText) 到期"
return "\(dateText) 到期"
case .english:
return "Expires on \(dateText)"
return "Expires \(dateText)"
}
}

Expand Down Expand Up @@ -253,7 +252,6 @@ enum I18n {
missingTokenUsageResult: "Missing token usage result.",
missingWeeklyQuotaWindow: "The weekly quota window was not returned.",
availableResetCredits: "Available resets:",
resetCreditDefaultTitle: "Rate-limit reset",
resetCreditNeverExpires: "Does not expire",
resetCreditDetailsUnavailable: "Details unavailable",
noAvailableResetCredits: "No reset credits available",
Expand Down Expand Up @@ -298,7 +296,6 @@ enum I18n {
missingTokenUsageResult: "缺少 token 消耗结果。",
missingWeeklyQuotaWindow: "未返回周额度窗口。",
availableResetCredits: "可用重置次数:",
resetCreditDefaultTitle: "额度重置",
resetCreditNeverExpires: "不会到期",
resetCreditDetailsUnavailable: "暂无重置详情",
noAvailableResetCredits: "暂无可用重置次数",
Expand Down
14 changes: 10 additions & 4 deletions Sources/AgentBar/UI/QuotaPopoverView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -613,7 +613,7 @@ private final class ResetCreditsHoverAnchorView: NSView {

private enum ResetCreditsMenuLayout {
static let width: CGFloat = 210
static let rowHeight: CGFloat = 68
static let rowHeight: CGFloat = 28
static let maxVisibleRows = 6

static func height(
Expand All @@ -638,6 +638,8 @@ private struct ResetCreditsDetailMenuView: View {
let availableCount: Int?
let credits: [RateLimitResetCredit]?

private static let fullResetTitle = "Full reset"

var body: some View {
ScrollView {
LazyVStack(spacing: 0) {
Expand Down Expand Up @@ -668,7 +670,7 @@ private struct ResetCreditsDetailMenuView: View {
var rows = credits.map { credit in
ResetCreditMenuRow(
id: credit.id,
title: credit.title ?? I18n.current.resetCreditDefaultTitle,
title: Self.fullResetTitle,
subtitle: credit.expiresAt.map(expirationText) ?? I18n.current.resetCreditNeverExpires
)
}
Expand Down Expand Up @@ -729,21 +731,25 @@ private struct ResetCreditDetailRow: View {
let row: ResetCreditMenuRow

var body: some View {
VStack(alignment: .leading, spacing: 5) {
HStack(spacing: 8) {
Text(row.title)
.font(.system(size: 13, weight: .medium))
.foregroundStyle(QuotaPopoverColors.primaryText)
.lineLimit(1)
.truncationMode(.tail)

Spacer(minLength: 8)

if let subtitle = row.subtitle {
Text(subtitle)
.font(.system(size: 13, weight: .medium))
.foregroundStyle(QuotaPopoverColors.mutedText)
.lineLimit(1)
.monospacedDigit()
.layoutPriority(1)
}
}
.frame(maxWidth: .infinity, minHeight: ResetCreditsMenuLayout.rowHeight, alignment: .leading)
.frame(maxWidth: .infinity, minHeight: ResetCreditsMenuLayout.rowHeight)
.padding(.horizontal, 16)
}
}
Expand Down