From 93b31403667bc6ef56ac08c0522be2bbcb1baf47 Mon Sep 17 00:00:00 2001 From: 732642856 <732642856@qq.com> Date: Sat, 18 Jul 2026 07:00:27 +0800 Subject: [PATCH] fix: reveal chat menu trigger on keyboard focus --- frontend/src/app/globals.css | 2 +- tests/test_session_management_entrypoints.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/globals.css b/frontend/src/app/globals.css index 76114aa8..42f640a6 100644 --- a/frontend/src/app/globals.css +++ b/frontend/src/app/globals.css @@ -273,7 +273,7 @@ button:disabled { cursor: default; opacity: .45; } .session-row > button:first-child > span { overflow: hidden; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 500; } .session-row > button:first-child small { color: inherit; line-height: 1.3; opacity: .72; font-size: 12px; } .session-menu-trigger { width: 26px; height: 26px; display: grid; place-items: center; border: 0; border-radius: 999px; background: transparent; color: var(--color-ink-tertiary); cursor: pointer; opacity: 0; transition: opacity 120ms ease-out, background-color 120ms ease-out; } -.session-row:hover .session-menu-trigger, .session-row.is-active .session-menu-trigger, .session-menu-trigger[aria-expanded="true"] { opacity: 1; } +.session-row:hover .session-menu-trigger, .session-row:focus-within .session-menu-trigger, .session-row.is-active .session-menu-trigger, .session-menu-trigger[aria-expanded="true"] { opacity: 1; } .session-menu-trigger:hover, .session-menu-trigger[aria-expanded="true"] { background: var(--color-canvas); color: var(--color-ink); } .session-actions { position: absolute; z-index: 4; top: calc(100% - 4px); right: var(--space-1); min-width: 112px; display: grid; gap: 2px; padding: 6px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-canvas); box-shadow: var(--shadow-elevated); } .session-actions button { min-height: 30px; width: 100%; padding: 0 8px; border: 0; border-radius: 8px; background: transparent; color: var(--color-ink-secondary); text-align: left; font-size: 12px; } diff --git a/tests/test_session_management_entrypoints.py b/tests/test_session_management_entrypoints.py index 88b7c8f6..a9a550c8 100644 --- a/tests/test_session_management_entrypoints.py +++ b/tests/test_session_management_entrypoints.py @@ -2,10 +2,11 @@ from pathlib import Path PAGE = Path("frontend/src/app/page.tsx") +STYLES = Path("frontend/src/app/globals.css") def test_chat_history_management_actions_are_exposed() -> None: - source = PAGE.read_text(encoding="utf-8") + source = PAGE.read_text(encoding="utf-8") + STYLES.read_text(encoding="utf-8") for expected in ( "renameSession", "deleteSession", @@ -20,6 +21,7 @@ def test_chat_history_management_actions_are_exposed() -> None: 'role="menu"', "closeSessionMenu", "Escape", + "focus-within", "置顶", "重命名", "归档",