diff --git a/apps/vscode/webview-ui/src/components/ActionMenu.tsx b/apps/vscode/webview-ui/src/components/ActionMenu.tsx index 01420879d4..f6ee7a2c9e 100644 --- a/apps/vscode/webview-ui/src/components/ActionMenu.tsx +++ b/apps/vscode/webview-ui/src/components/ActionMenu.tsx @@ -5,6 +5,7 @@ import { Button } from "@/components/ui/button"; import { Separator } from "@/components/ui/separator"; import { useSettingsStore } from "@/stores"; import { bridge } from "@/services"; +import { toast } from "@/components/ui/sonner"; import { cn } from "@/lib/utils"; interface ActionMenuProps { @@ -71,16 +72,23 @@ export function ActionMenu({ className, onAuthAction }: ActionMenuProps) { }; const handleAuthAction = async () => { - if (isLoggedIn) { - setLoading(true); - try { + setLoading(true); + try { + if (isLoggedIn) { await bridge.logout(); setIsLoggedIn(false); - } finally { - setLoading(false); + } else { + const result = await bridge.login(); + if (result.success) { + setIsLoggedIn(true); + } else { + toast.error(result.error ?? "Sign-in failed. Check the logs for details."); + } } + } finally { + setLoading(false); + setOpen(false); } - setOpen(false); onAuthAction?.(); };