import AppKitimport CodexBarCoreimport SwiftUI extension ProviderSwitcherSelection { var provider: UsageProvider? { switch self { case .overview: nil case let .provider(provider): provider } }} struct OverviewMenuCardRowView: View { let model: UsageMenuCardView.Model let width: CGFloat var body: some View { VStack(alignment: .leading, spacing: 0) { UsageMenuCardHeaderSectionView( model: self.model, showDivider: self.hasUsageBlock, width: self.width) if self.hasUsageBlock { UsageMenuCardUsageSectionView( model: self.model, showBottomDivider: false, bottomPadding: 6, width: self.width) } } .frame(width: self.width, alignment: .leading) } private var hasUsageBlock: Bool { !self.model.metrics.isEmpty || !self.model.usageNotes.isEmpty || self.model.placeholder != nil }} struct OpenAIWebMenuItems { let hasUsageBreakdown: Bool let hasCreditsHistory: Bool let hasCostHistory: Bool let canShowBuyCredits: Bool} struct TokenAccountMenuDisplay { let provider: UsageProvider let accounts: [ProviderTokenAccount] let snapshots: [TokenAccountUsageSnapshot] let activeIndex: Int let showAll: Bool let showSwitcher: Bool} struct CodexAccountMenuDisplay: Equatable { let accounts: [CodexVisibleAccount] let activeVisibleAccountID: String?}
import AppKit
import CodexBarCore
import SwiftUI
extension ProviderSwitcherSelection {
var provider: UsageProvider? {
switch self {
case .overview:
nil
case let .provider(provider):
provider
}
}
}
struct OverviewMenuCardRowView: View {
let model: UsageMenuCardView.Model
let width: CGFloat
var body: some View {
VStack(alignment: .leading, spacing: 0) {
UsageMenuCardHeaderSectionView(
model: self.model,
showDivider: self.hasUsageBlock,
width: self.width)
if self.hasUsageBlock {
UsageMenuCardUsageSectionView(
model: self.model,
showBottomDivider: false,
bottomPadding: 6,
width: self.width)
}
}
.frame(width: self.width, alignment: .leading)
}
private var hasUsageBlock: Bool {
!self.model.metrics.isEmpty || !self.model.usageNotes.isEmpty || self.model.placeholder != nil
}
}
struct OpenAIWebMenuItems {
let hasUsageBreakdown: Bool
let hasCreditsHistory: Bool
let hasCostHistory: Bool
let canShowBuyCredits: Bool
}
struct TokenAccountMenuDisplay {
let provider: UsageProvider
let accounts: [ProviderTokenAccount]
let snapshots: [TokenAccountUsageSnapshot]
let activeIndex: Int
let showAll: Bool
let showSwitcher: Bool
}
struct CodexAccountMenuDisplay: Equatable {
let accounts: [CodexVisibleAccount]
let activeVisibleAccountID: String?
}