From 1f602e53c29eb28d98754252823ad8f40f839d1b Mon Sep 17 00:00:00 2001 From: Big Boss Date: Fri, 29 Nov 2024 15:58:01 -0600 Subject: [PATCH] fix: intellij freezing Reverts useIsOSREnabled to use the single use event listener instead of subscribing to `useWebviewListener` --- core/protocol/ideWebview.ts | 2 +- .../toolWindow/ContinueBrowser.kt | 6 ++++-- gui/src/hooks/useIsOSREnabled.ts | 16 ++++++++++------ 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/core/protocol/ideWebview.ts b/core/protocol/ideWebview.ts index 91fa403953..bf5866cca3 100644 --- a/core/protocol/ideWebview.ts +++ b/core/protocol/ideWebview.ts @@ -43,7 +43,7 @@ export type ToIdeFromWebviewProtocol = ToIdeFromWebviewOrCoreProtocol & { insertAtCursor: [{ text: string }, void]; copyText: [{ text: string }, void]; "jetbrains/editorInsetHeight": [{ height: number }, void]; - "jetbrains/isOSREnabled": [undefined, void]; + "jetbrains/isOSREnabled": [undefined, boolean]; "vscode/openMoveRightMarkdown": [undefined, void]; setGitHubAuthToken: [{ token: string }, void]; acceptDiff: [{ filepath: string; streamId?: string }, void]; diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/toolWindow/ContinueBrowser.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/toolWindow/ContinueBrowser.kt index 659ec49985..b2350759c1 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/toolWindow/ContinueBrowser.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/toolWindow/ContinueBrowser.kt @@ -137,7 +137,7 @@ class ContinueBrowser(val project: Project, url: String) { } "jetbrains/isOSREnabled" -> { - sendToWebview( "jetbrains/isOSREnabled", isOSREnabled) + respond(isOSREnabled) } "onLoad" -> { @@ -267,7 +267,9 @@ class ContinueBrowser(val project: Project, url: String) { val jsCode = buildJavaScript(jsonData) try { - this.browser.executeJavaScriptAsync(jsCode) + this.browser.executeJavaScriptAsync(jsCode).onError { + println("Failed to execute jsCode error: ${it.message}") + } } catch (error: IllegalStateException) { println("Webview not initialized yet $error") } diff --git a/gui/src/hooks/useIsOSREnabled.ts b/gui/src/hooks/useIsOSREnabled.ts index 10ad047564..8ceca9cbfe 100644 --- a/gui/src/hooks/useIsOSREnabled.ts +++ b/gui/src/hooks/useIsOSREnabled.ts @@ -7,15 +7,19 @@ export default function useIsOSREnabled() { const [isOSREnabled, setIsOSREnabled] = useState(false); const ideMessenger = useContext(IdeMessengerContext); - useWebviewListener("jetbrains/isOSREnabled", async (isOSREnabled) => { - setIsOSREnabled(isOSREnabled); - }); - useEffect(() => { if (isJetBrains()) { - ideMessenger.post("jetbrains/isOSREnabled", undefined); + (async () => { + await ideMessenger + .request("jetbrains/isOSREnabled", undefined) + .then((result) => { + if (result.status === "success") { + setIsOSREnabled(result.content); + } + }); + })(); } - }, []); + }, [ideMessenger]); return isOSREnabled; }