

























@@ -54,17 +54,13 @@ export function renderChatSessionSelect(
5454const surface = options.surface ?? "desktop";
5555const selectedSessionLabel = resolveSelectedChatSessionLabel(state, sessionGroups);
5656const pickerOpen = state.chatSessionPickerOpen && state.chatSessionPickerSurface === surface;
57-const sessionSearchVisible =
58-state.chatSessionSearchOpen ||
59-(state.chatSessionPickerQuery ?? "").trim() !== "" ||
60-(state.chatSessionPickerAppliedQuery ?? "").trim() !== "";
6157const flashSession = state.sessionSwitchFlashKey === state.sessionKey;
6258const rowClass = [
6359"chat-controls__session-row",
6460hasAgentSelect ? "" : "chat-controls__session-row--single-agent",
6561quotaPill ? "chat-controls__session-row--has-quota" : "",
6662flashSession ? "chat-controls__session-row--flash" : "",
67-sessionSearchVisible ? "chat-controls__session-row--session-search-open" : "",
63+"chat-controls__session-row--session-search-open",
6864]
6965.filter(Boolean)
7066.join(" ");
@@ -140,11 +136,6 @@ function closeChatSessionPicker(state: AppViewState) {
140136requestHostUpdate(state);
141137}
142138143-function openChatSessionSearch(state: AppViewState, surface: ChatSessionSelectSurface) {
144-state.chatSessionSearchOpen = true;
145-openChatSessionPicker(state, surface);
146-}
147-148139function toggleChatSessionPicker(state: AppViewState, surface: ChatSessionSelectSurface) {
149140if (state.chatSessionPickerOpen && state.chatSessionPickerSurface === surface) {
150141closeChatSessionPicker(state);
@@ -258,7 +249,6 @@ async function applyChatSessionPickerSearch(state: AppViewState) {
258249}
259250260251function clearChatSessionPickerSearch(state: AppViewState) {
261-state.chatSessionSearchOpen = false;
262252state.chatSessionPickerQuery = "";
263253state.chatSessionPickerAppliedQuery = "";
264254state.chatSessionPickerError = null;
@@ -369,28 +359,7 @@ function renderChatSessionPickerSearchControls(
369359state: AppViewState,
370360surface: ChatSessionSelectSurface,
371361) {
372-const hasQuery =
373-(state.chatSessionPickerQuery ?? "").trim() !== "" ||
374-(state.chatSessionPickerAppliedQuery ?? "").trim() !== "";
375-const searchVisible = state.chatSessionSearchOpen || hasQuery;
376362const disabled = !state.connected || !state.client || state.chatSessionPickerLoading;
377-if (!searchVisible) {
378-return html`
379- <div class="chat-controls__session-actions">
380- <button
381- class="btn btn--ghost btn--icon chat-controls__session-search-toggle"
382- data-chat-session-search-toggle="true"
383- type="button"
384- title=${t("chat.selectors.sessionSearch")}
385- aria-label=${t("chat.selectors.sessionSearch")}
386- ?disabled=${disabled}
387- @click=${() => openChatSessionSearch(state, surface)}
388- >
389- ${icons.search}
390- </button>
391- </div>
392- `;
393-}
394363return html`
395364 <div class="chat-controls__session-actions">
396365 <label class="field chat-controls__session-search">
@@ -403,12 +372,14 @@ function renderChatSessionPickerSearchControls(
403372 aria-label=${t("chat.selectors.sessionSearch")}
404373 .value=${state.chatSessionPickerQuery ?? ""}
405374 ?disabled=${disabled}
375+ @focus=${() => openChatSessionPicker(state, surface)}
406376 @input=${(event: Event) => {
407377 state.chatSessionPickerQuery = (event.target as HTMLInputElement).value;
408378 }}
409379 @keydown=${(event: KeyboardEvent) => {
410380 if (event.key === "Enter") {
411381 event.preventDefault();
382+ openChatSessionPicker(state, surface);
412383 void applyChatSessionPickerSearch(state);
413384 } else if (event.key === "Escape") {
414385 event.preventDefault();
@@ -418,28 +389,6 @@ function renderChatSessionPickerSearchControls(
418389 }}
419390 />
420391 </label>
421- <button
422- class="btn btn--ghost btn--icon"
423- data-chat-session-search-submit="true"
424- type="button"
425- title=${t("common.search")}
426- aria-label=${t("common.search")}
427- ?disabled=${disabled}
428- @click=${() => void applyChatSessionPickerSearch(state)}
429- >
430- ${icons.search}
431- </button>
432- <button
433- class="btn btn--ghost btn--icon"
434- data-chat-session-search-clear="true"
435- type="button"
436- title=${t("chat.selectors.clearSessionSearch")}
437- aria-label=${t("chat.selectors.clearSessionSearch")}
438- ?disabled=${disabled}
439- @click=${() => clearChatSessionPickerSearch(state)}
440- >
441- ${icons.x}
442- </button>
443392 </div>
444393 `;
445394}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。