From 70587210fbf8055c9a570a57d18c262895878411 Mon Sep 17 00:00:00 2001 From: Dorian Date: Sat, 18 Jul 2026 11:54:12 +0100 Subject: [PATCH] fix(ui): stop controller-nav Enter from clicking Replay Intro on auth inputs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The companion's auto-login fills the password and dispatches Enter in the same tick, before Vue re-enables the disabled submit button. Controller-nav's 'Enter in input clicks the next enabled button' pattern then hit the Replay Intro button — clearing neode_intro_seen and hard-navigating to /, so every app connect replayed the intro cinematic in a loop. The auth inputs all have their own Enter handlers, so they opt out via data-controller-no-submit. Co-Authored-By: Claude Fable 5 --- neode-ui/src/views/Login.vue | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/neode-ui/src/views/Login.vue b/neode-ui/src/views/Login.vue index 65396110..3395cdf1 100644 --- a/neode-ui/src/views/Login.vue +++ b/neode-ui/src/views/Login.vue @@ -64,6 +64,7 @@ type="password" autocomplete="new-password" data-form-type="other" + data-controller-no-submit class="w-full px-4 py-3 bg-transparent border border-white/20 rounded-lg text-white placeholder-white/40 focus:outline-none focus:border-white/40 focus:ring-1 focus:ring-white/20 transition-colors" :placeholder="t('login.enterPasswordSetup')" @keydown.enter="confirmPasswordInputRef?.focus()" @@ -83,6 +84,7 @@ type="password" autocomplete="new-password" data-form-type="other" + data-controller-no-submit class="w-full px-4 py-3 bg-transparent border border-white/20 rounded-lg text-white placeholder-white/40 focus:outline-none focus:border-white/40 focus:ring-1 focus:ring-white/20 transition-colors" :placeholder="t('login.confirmPasswordPlaceholder')" @keydown.enter="handleSetupWithSound" @@ -127,6 +129,7 @@ pattern="[0-9]*" maxlength="8" autocomplete="one-time-code" + data-controller-no-submit :aria-label="t('login.totpLabel')" class="w-full px-4 py-3 bg-transparent border border-white/20 rounded-lg text-white text-center text-2xl tracking-[0.5em] placeholder-white/40 focus:outline-none focus:border-orange-400/60 focus:ring-1 focus:ring-orange-400/30 transition-colors" :placeholder="useBackupCode ? 'XXXX-XXXX' : '000000'" @@ -165,6 +168,12 @@ 🎮 Demo mode — Password: {{ DEMO_PASSWORD }} +