From 16e0268da74695425d122a7fbcafcd5212d7a2fd Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Thu, 4 Jun 2026 06:37:16 -0400 Subject: [PATCH] fix(modal): next arrow clears metadata panel + arrows work in empty tag input MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Image viewer (#609): - The next (▶) arrow was offset from the viewport edge (right:16px) so it floated over the 320px metadata side panel. Offset it off a shared --fc-side-w var so it sits at the image's right edge instead; full-width again below 900px when the panel stacks under the image. - Arrow nav was fully disabled whenever a text field was focused. Now it yields to the caret ONLY when the field has text; an empty tag-entry field still navigates ←/→. Extracted to utils/textEntry.js (arrowNavAllowed). ESC behaviour unchanged (already closes the modal, overlay-aware). Test: arrowNavAllowed — empty/non-text → navigate, text present → don't. Co-Authored-By: Claude Opus 4.8 (1M context) --- frontend/src/components/modal/ImageViewer.vue | 27 ++++++++++------ frontend/src/utils/textEntry.js | 21 +++++++++++++ frontend/test/textEntry.spec.js | 31 +++++++++++++++++++ 3 files changed, 69 insertions(+), 10 deletions(-) create mode 100644 frontend/src/utils/textEntry.js create mode 100644 frontend/test/textEntry.spec.js diff --git a/frontend/src/components/modal/ImageViewer.vue b/frontend/src/components/modal/ImageViewer.vue index 84cb495..4cb8fe5 100644 --- a/frontend/src/components/modal/ImageViewer.vue +++ b/frontend/src/components/modal/ImageViewer.vue @@ -60,6 +60,7 @@