diff --git a/src/providers/ClaudeDevProvider.ts b/src/providers/ClaudeDevProvider.ts index cbe472a..2acb905 100644 --- a/src/providers/ClaudeDevProvider.ts +++ b/src/providers/ClaudeDevProvider.ts @@ -34,7 +34,7 @@ export class ClaudeDevProvider implements vscode.WebviewViewProvider { private disposables: vscode.Disposable[] = [] private view?: vscode.WebviewView | vscode.WebviewPanel private claudeDev?: ClaudeDev - private latestAnnouncementId = "aug-26-2024" // update to some unique identifier when we add a new announcement + private latestAnnouncementId = "aug-28-2024" // update to some unique identifier when we add a new announcement constructor(readonly context: vscode.ExtensionContext, private readonly outputChannel: vscode.OutputChannel) { this.outputChannel.appendLine("ClaudeDevProvider instantiated") diff --git a/webview-ui/src/App.tsx b/webview-ui/src/App.tsx index e3eb02f..b93605d 100644 --- a/webview-ui/src/App.tsx +++ b/webview-ui/src/App.tsx @@ -1,4 +1,4 @@ -import { useCallback, useMemo, useState } from "react" +import { useCallback, useEffect, useMemo, useState } from "react" import { useEvent } from "react-use" import { ExtensionMessage } from "../../src/shared/ExtensionMessage" import { normalizeApiConfiguration } from "./components/ApiOptions" @@ -10,7 +10,7 @@ import { ExtensionStateContextProvider, useExtensionState } from "./context/Exte import { vscode } from "./utils/vscode" const AppContent = () => { - const { apiConfiguration } = useExtensionState() + const { apiConfiguration, shouldShowAnnouncement } = useExtensionState() const [showSettings, setShowSettings] = useState(false) const [showHistory, setShowHistory] = useState(false) const [showWelcome, setShowWelcome] = useState(false) @@ -26,11 +26,6 @@ const AppContent = () => { message.state!.apiConfiguration?.awsAccessKey !== undefined || message.state!.apiConfiguration?.vertexProjectId !== undefined setShowWelcome(!hasKey) - // don't update showAnnouncement to false if shouldShowAnnouncement is false - if (message.state!.shouldShowAnnouncement) { - setShowAnnouncement(true) - vscode.postMessage({ type: "didShowAnnouncement" }) - } break case "action": switch (message.action!) { @@ -58,6 +53,13 @@ const AppContent = () => { return normalizeApiConfiguration(apiConfiguration) }, [apiConfiguration]) + useEffect(() => { + if (shouldShowAnnouncement) { + setShowAnnouncement(true) + vscode.postMessage({ type: "didShowAnnouncement" }) + } + }, [shouldShowAnnouncement]) + return ( <> {showWelcome ? ( diff --git a/webview-ui/src/components/Announcement.tsx b/webview-ui/src/components/Announcement.tsx index a699242..4647b5b 100644 --- a/webview-ui/src/components/Announcement.tsx +++ b/webview-ui/src/components/Announcement.tsx @@ -29,13 +29,19 @@ const Announcement = ({ version, hideAnnouncement, apiConfiguration, vscodeUriSc

🎉{" "}New in v{version}

-

Follow me for more updates!{" "}