mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-28 13:26:04 -06:00
feat(ui): keep bench selects open
This commit is contained in:
@@ -240,3 +240,4 @@
|
||||
2026-08-22 09:13 · Reduced the composer underlap to one precedence-ordered status lane, kept terminal interruption with the assistant transcript, and added the three mixed-state sweep fixtures · ui/src/pages/chat/chat-pane-render.ts, ui/src/pages/chat/chat-view.ts, ui/src/pages/chat/components/chat-composer-types.ts, ui/src/pages/chat/components/chat-composer-view.ts, ui/src/pages/chat/components/chat-message-group.ts, ui/src/pages/chat/components/chat-thread-interactions.ts, ui/src/pages/chat/components/chat-transcript-projection.ts, ui/src/pages/chat/components/chat-working-indicator.ts, ui/src/styles/chat/layout.css, ui/src/styles/chat/tool-cards.css, ui/src/test-helpers/composer-bench.ts · COMPONENT #124301 multiline | BENCH
|
||||
2026-08-22 09:22 · Matched the Plan hover card to the 600ms open, 300ms close and 100ms fade-scale-slide interaction contract while preserving hover across the card · ui/src/components/session-progress-card.ts, ui/src/styles/chat/progress-card.css · COMPONENT #124301 multiline | BENCH
|
||||
2026-08-22 09:31 · Completed queue double-click editing with caret-at-end focus, Enter submit and Escape cancel through the existing inline editor · ui/src/pages/chat/components/chat-composer-queue.ts · COMPONENT #124301 multiline | BENCH
|
||||
2026-08-22 09:38 · Kept bench disclosure selects open across live choices and added ArrowUp and ArrowDown selection while retaining header, Escape and outside-click dismissal · ui/src/test-helpers/composer-bench.ts · COMPONENT #124301 multiline | BENCH
|
||||
|
||||
@@ -132,6 +132,7 @@ Local-only working ledger. Re-read after every implementation block; move an ite
|
||||
- [x] Add Interrupted + members, offline + read-only and approval + offline sweep fixtures.
|
||||
- [x] Match the Plan hover card delays and 100ms fade, scale and upward-slide transition.
|
||||
- [x] Complete queue double-click editing with caret-at-end focus, Enter submit and Escape cancel.
|
||||
- [x] Keep bench disclosures open while selecting and support live ArrowUp and ArrowDown changes.
|
||||
|
||||
## Observed queue contract
|
||||
|
||||
|
||||
@@ -2077,6 +2077,22 @@ benchDisclosures.forEach((disclosure) => {
|
||||
if (other !== disclosure) other.open = false;
|
||||
});
|
||||
});
|
||||
disclosure.addEventListener("keydown", (event) => {
|
||||
if (!disclosure.open || !["ArrowUp", "ArrowDown"].includes(event.key)) return;
|
||||
const options = [
|
||||
...disclosure.querySelectorAll<HTMLButtonElement>(
|
||||
"[data-bench-axis][data-bench-value]:not(:disabled)",
|
||||
),
|
||||
];
|
||||
if (options.length === 0) return;
|
||||
event.preventDefault();
|
||||
const activeIndex = options.findIndex((option) => option.hasAttribute("data-active"));
|
||||
const direction = event.key === "ArrowUp" ? -1 : 1;
|
||||
const nextIndex = (Math.max(activeIndex, 0) + direction + options.length) % options.length;
|
||||
const nextOption = options[nextIndex];
|
||||
nextOption?.click();
|
||||
nextOption?.focus({ preventScroll: true });
|
||||
});
|
||||
});
|
||||
document.addEventListener("pointerdown", (event) => {
|
||||
const target = event.target;
|
||||
|
||||
Reference in New Issue
Block a user