diff --git a/src/renderer/src/components/status-bar/StatusBar.tsx b/src/renderer/src/components/status-bar/StatusBar.tsx index 1346eef8dfd..b9a236458ca 100644 --- a/src/renderer/src/components/status-bar/StatusBar.tsx +++ b/src/renderer/src/components/status-bar/StatusBar.tsx @@ -157,11 +157,17 @@ function ClaudeSwitcherMenu({ } }, []) - useEffect(() => { - if (accountsExpanded) { - void fetchInactiveClaudeAccountUsage() - } - }, [accountsExpanded, fetchInactiveClaudeAccountUsage]) + // Why: inactive-account usage is needed only for the explicit switcher + // expansion, so fetch it on that event instead of one render later. + const handleAccountsExpandedToggle = useCallback((): void => { + setAccountsExpanded((current) => { + const nextExpanded = !current + if (nextExpanded) { + void fetchInactiveClaudeAccountUsage() + } + return nextExpanded + }) + }, [fetchInactiveClaudeAccountUsage]) const handleSelectAccount = async (accountId: string | null): Promise => { if (isSwitching) { @@ -208,7 +214,7 @@ function ClaudeSwitcherMenu({ { event.preventDefault() - setAccountsExpanded((prev) => !prev) + handleAccountsExpandedToggle() }} >