mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-06-02 18:45:34 +08:00
fix: refresh Claude auth status after login flow (#617)
* fix: refresh Claude auth status after login flow * fix: rely on refreshed auth status after login --------- Co-authored-by: HolyCode User <noreply@holycode.local>
This commit is contained in:
@@ -70,34 +70,39 @@ export function useProviderAuthStatus(
|
||||
}));
|
||||
}, []);
|
||||
|
||||
const checkProviderAuthStatus = useCallback(async (provider: LLMProvider) => {
|
||||
const checkProviderAuthStatus = useCallback(async (provider: LLMProvider): Promise<ProviderAuthStatus> => {
|
||||
setProviderLoading(provider);
|
||||
|
||||
try {
|
||||
const response = await authenticatedFetch(PROVIDER_AUTH_STATUS_ENDPOINTS[provider]);
|
||||
|
||||
if (!response.ok) {
|
||||
setProviderStatus(provider, {
|
||||
const status: ProviderAuthStatus = {
|
||||
authenticated: false,
|
||||
email: null,
|
||||
method: null,
|
||||
loading: false,
|
||||
error: FALLBACK_STATUS_ERROR,
|
||||
});
|
||||
return;
|
||||
};
|
||||
setProviderStatus(provider, status);
|
||||
return status;
|
||||
}
|
||||
|
||||
const payload = (await response.json()) as ProviderAuthStatusApiResponse;
|
||||
setProviderStatus(provider, toProviderAuthStatus(payload.data));
|
||||
const status = toProviderAuthStatus(payload.data);
|
||||
setProviderStatus(provider, status);
|
||||
return status;
|
||||
} catch (caughtError) {
|
||||
console.error(`Error checking ${provider} auth status:`, caughtError);
|
||||
setProviderStatus(provider, {
|
||||
const status: ProviderAuthStatus = {
|
||||
authenticated: false,
|
||||
email: null,
|
||||
method: null,
|
||||
loading: false,
|
||||
error: toErrorMessage(caughtError),
|
||||
});
|
||||
};
|
||||
setProviderStatus(provider, status);
|
||||
return status;
|
||||
}
|
||||
}, [setProviderLoading, setProviderStatus]);
|
||||
|
||||
|
||||
@@ -213,12 +213,19 @@ export function useSettingsController({ isOpen, initialTab }: UseSettingsControl
|
||||
}, []);
|
||||
|
||||
const handleLoginComplete = useCallback((exitCode: number) => {
|
||||
if (exitCode !== 0 || !loginProvider) {
|
||||
if (!loginProvider) {
|
||||
return;
|
||||
}
|
||||
|
||||
setSaveStatus('success');
|
||||
void checkProviderAuthStatus(loginProvider);
|
||||
void (async () => {
|
||||
const authStatus = await checkProviderAuthStatus(loginProvider);
|
||||
|
||||
if (exitCode !== 0) {
|
||||
console.warn(`Login process exited with code ${exitCode}; refreshing auth status before setting save status.`);
|
||||
}
|
||||
|
||||
setSaveStatus(authStatus.authenticated ? 'success' : 'error');
|
||||
})();
|
||||
}, [checkProviderAuthStatus, loginProvider]);
|
||||
|
||||
const saveSettings = useCallback(async () => {
|
||||
|
||||
Reference in New Issue
Block a user