diff --git a/src/vs/workbench/contrib/chat/browser/chatViewPane.ts b/src/vs/workbench/contrib/chat/browser/chatViewPane.ts index 74b05595f79..f1f4f1abde6 100644 --- a/src/vs/workbench/contrib/chat/browser/chatViewPane.ts +++ b/src/vs/workbench/contrib/chat/browser/chatViewPane.ts @@ -45,6 +45,7 @@ import { AGENT_SESSIONS_VIEW_ID } from './agentSessions/agentSessions.js'; import { AgentSessionsControl } from './agentSessions/agentSessionsControl.js'; import { ChatWidget } from './chatWidget.js'; import { ChatViewWelcomeController, IViewWelcomeDelegate } from './viewsWelcome/chatViewWelcomeController.js'; +import { AgentSessionsListDelegate } from './agentSessions/agentSessionsViewer.js'; interface IChatViewPaneState extends Partial { sessionId?: string; @@ -58,6 +59,8 @@ type ChatViewPaneOpenedClassification = { export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate { + private static readonly SESSIONS_LIMIT = 3; + private _widget!: ChatWidget; get widget(): ChatWidget { return this._widget; } @@ -265,7 +268,7 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate { this.sessionsControl = this._register(this.instantiationService.createInstance(AgentSessionsControl, this.sessionsContainer, { allowOpenSessionsInPanel: true, filter: { - limitResults: 3, // Limit to 3 sessions + limitResults: ChatViewPane.SESSIONS_LIMIT, exclude(session) { if (session.isArchived()) { return true; // exclude archived sessions @@ -430,13 +433,11 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate { let remainingHeight = height; - // Sessions Control + // Sessions Control (grows witht the number of items displayed) + this.sessionsControl?.layout(this.sessionsCount * AgentSessionsListDelegate.ITEM_HEIGHT, width); const sessionsContainerHeight = this.sessionsContainer?.offsetHeight ?? 0; remainingHeight -= sessionsContainerHeight; - const sessionsLinkHeight = this.sessionsLinkContainer?.offsetHeight ?? 0; - this.sessionsControl?.layout(sessionsContainerHeight - sessionsLinkHeight, width); - // Chat Widget this._widget.layout(remainingHeight, width); } diff --git a/src/vs/workbench/contrib/chat/browser/media/chatViewPane.css b/src/vs/workbench/contrib/chat/browser/media/chatViewPane.css index 158ef3ebc88..0b62a73776f 100644 --- a/src/vs/workbench/contrib/chat/browser/media/chatViewPane.css +++ b/src/vs/workbench/contrib/chat/browser/media/chatViewPane.css @@ -10,7 +10,6 @@ .agent-sessions-container { display: flex; flex-direction: column; - flex-grow: 1; padding: 4px 8px; .agent-sessions-viewer .monaco-list .monaco-list-row {