fix: keep layout always in DOM via v-show to avoid Firefox click dispatch bug

Replace v-if/v-else-if/v-else auth guard with v-if on LoginPage and
v-show on the layout div. Firefox fails to dispatch clicks to children
after a DOM node is inserted into a display:flex container; using v-show
means the layout is always present (just display:none), so no node
replacement ever occurs in .app-root. Move the forced AccountModal
(mustChangePassword) inside the layout as a first child with v-if.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-18 08:09:06 +02:00
parent 6ae7fac766
commit 0a91d840be
+2 -3
View File
@@ -2,13 +2,12 @@
<div class="app-root"> <div class="app-root">
<LoginPage v-if="!isAuthenticated" @login="onLogin" /> <LoginPage v-if="!isAuthenticated" @login="onLogin" />
<div v-show="isAuthenticated" class="layout">
<AccountModal <AccountModal
v-else-if="mustChangePassword" v-if="mustChangePassword"
:forced="true" :forced="true"
@updated="onAccountUpdated" @updated="onAccountUpdated"
/> />
<div v-else class="layout">
<aside class="sidebar"> <aside class="sidebar">
<div class="logo"> <div class="logo">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">