diff --git a/src/renderer/src/components/status-bar/StatusBar.tsx b/src/renderer/src/components/status-bar/StatusBar.tsx index e93bd9e6bbc..55c5eb30f87 100644 --- a/src/renderer/src/components/status-bar/StatusBar.tsx +++ b/src/renderer/src/components/status-bar/StatusBar.tsx @@ -1107,7 +1107,21 @@ function WindowLabel({ ) } -// Single-letter provider badge for the icon-only (narrow) status bar. +// Single-letter provider badge for the icon-only (narrow) status bar. Shared by +// the roster trigger and ProviderDetailsMenu so the dot's has-data condition +// and markup can't drift between the two. +function ProviderLetterBadge({ p }: { p: ProviderRateLimits }): React.JSX.Element { + const hasData = Boolean(p.session || p.weekly || p.fableWeekly || p.monthly || p.buckets?.length) + return ( + + + {getProviderLetter(p.provider)} + + ) +} + function getProviderLetter(provider: ProviderRateLimits['provider']): string { switch (provider) { case 'claude': @@ -1822,6 +1836,7 @@ export function ProviderDetailsMenu({ <> {topContent}
+ {/* Why: provider-specific action sections may render richer reset-credit UI. */} {iconOnly ? ( - - - {getProviderLetter(provider.provider)} - + ) : ( )} @@ -1891,21 +1901,7 @@ export function ProviderDetailsMenu({ event.preventDefault() }} > - {topContent} -
- {/* Why: provider-specific action sections may render richer reset-credit UI. */} - -
- {children ? ( - <> - - {children} - - ) : null} + {panelBody} ) @@ -2201,19 +2197,8 @@ function StatusBarInner({ floatingTerminalOpen }: StatusBarProps): React.JSX.Ele {rosterProviders.map((p) => iconOnly ? ( // Narrow status bar: fall back to main's compact letter badge. - - - {getProviderLetter(p.provider)} + + ) : ( ยท {plan} : null} - {!signedOut && reset ? ( + {signedOut ? ( + <> + + {translate( + 'auto.components.status.bar.UsageRosterPanel.notSignedIn', + 'not signed in' + )} + + + + ) : reset ? ( {reset} ) : null} - {signedOut ? ( - - ) : null}
- {signedOut ? ( -
- {translate('auto.components.status.bar.UsageRosterPanel.notSignedIn', 'not signed in')} -
- ) : ( + {signedOut ? null : (
{sections.map((s) => { const used = clampUsedPercent(s.window.usedPercent)