From 4cdd8bfae49681b2a5ea7575494071fcec6c3979 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Wed, 19 Mar 2025 09:35:38 -0700 Subject: [PATCH] Wait for viewmodel creation in openEditSession (#244016) --- .../chat/browser/actions/chatClearActions.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.ts b/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.ts index c61e9ef91e9..8bf6f719422 100644 --- a/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.ts +++ b/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { Codicon } from '../../../../../base/common/codicons.js'; +import { Event } from '../../../../../base/common/event.js'; import { KeyCode, KeyMod } from '../../../../../base/common/keyCodes.js'; import { ServicesAccessor } from '../../../../../editor/browser/editorExtensions.js'; import { localize2 } from '../../../../../nls.js'; @@ -336,15 +337,25 @@ export function registerNewChatActions() { const chatView = await viewsService.openView(EditsViewId) ?? await viewsService.openView(ChatViewId); + if (!chatView?.widget) { + return; + } + + if (!chatView.widget.viewModel) { + await Event.toPromise( + Event.filter(chatView.widget.onDidChangeViewModel, () => !!chatView.widget.viewModel) + ); + } + if (opts?.query) { if (opts.isPartialQuery) { - chatView?.widget.setInput(opts.query); + chatView.widget.setInput(opts.query); } else { - chatView?.widget.acceptInput(opts.query); + chatView.widget.acceptInput(opts.query); } } - chatView?.widget.focusInput(); + chatView.widget.focusInput(); } }); }