diff --git a/webview-ui/src/App.tsx b/webview-ui/src/App.tsx index 61361ce6e5..c31db3bf6a 100644 --- a/webview-ui/src/App.tsx +++ b/webview-ui/src/App.tsx @@ -5,7 +5,7 @@ import ChatView from "./components/chat/ChatView" import HistoryView from "./components/history/HistoryView" import SettingsView from "./components/settings/SettingsView" import WelcomeView from "./components/welcome/WelcomeView" -import AccountOptions from "./components/account/AccountOptions" +import AccountView from "./components/account/AccountView" import { ExtensionStateContextProvider, useExtensionState } from "./context/ExtensionStateContext" import { vscode } from "./utils/vscode" import McpView from "./components/mcp/McpView" @@ -80,7 +80,7 @@ const AppContent = () => { {showSettings && setShowSettings(false)} />} {showHistory && setShowHistory(false)} />} {showMcp && setShowMcp(false)} />} - {showAccount && } + {showAccount && setShowAccount(false)} />} {/* Do not conditionally load ChatView, it's expensive and there's state we don't want to lose (user input, disableInput, askResponse promise, etc.) */} { diff --git a/webview-ui/src/components/account/AccountOptions.tsx b/webview-ui/src/components/account/AccountOptions.tsx deleted file mode 100644 index e2e366b212..0000000000 --- a/webview-ui/src/components/account/AccountOptions.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { memo } from "react" -import { vscode } from "../../utils/vscode" - -const AccountOptions = () => { - const handleAccountClick = () => { - vscode.postMessage({ type: "accountButtonClicked" }) - } - - // Call handleAccountClick immediately when component mounts - handleAccountClick() - - return null // This component doesn't render anything -} - -export default memo(AccountOptions) diff --git a/webview-ui/src/components/account/AccountView.tsx b/webview-ui/src/components/account/AccountView.tsx new file mode 100644 index 0000000000..6a7587af70 --- /dev/null +++ b/webview-ui/src/components/account/AccountView.tsx @@ -0,0 +1,61 @@ +import { VSCodeButton } from "@vscode/webview-ui-toolkit/react" +import { memo } from "react" +import { useExtensionState } from "../../context/ExtensionStateContext" +import { vscode } from "../../utils/vscode" + +type AccountViewProps = { + onDone: () => void +} + +const AccountView = ({ onDone }: AccountViewProps) => { + const { isLoggedIn } = useExtensionState() + + const handleLogin = () => { + vscode.postMessage({ type: "accountButtonClicked" }) + } + + return ( +
+
+

Account

+ Done +
+
+
+ {isLoggedIn ? ( +
You're logged in!
+ ) : ( + Log in to Cline + )} +
+
+
+ ) +} + +export default memo(AccountView)