fix(licence): Register ne clignote plus avant d'etre masque
Les onglets etaient visibles par defaut puis masques a la reponse de /ping : Register restait affiche quelques millisecondes. Ils naissent maintenant invisibles (visibility, place reservee) et ne sont reveles qu'une fois la reponse connue — licence valide, ils apparaissent sans rien decaler ; licence refusee, Register n'est jamais montre. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -293,6 +293,11 @@ input[type="range"]::-webkit-slider-thumb {
|
|||||||
color: var(--text);
|
color: var(--text);
|
||||||
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
|
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
|
||||||
}
|
}
|
||||||
|
/* Invisibles MAIS presents tant que la 2e couche de licence n'a pas repondu
|
||||||
|
(applyRegisterVisibility) : visibles par defaut, ils laissaient voir Register
|
||||||
|
quelques millisecondes avant d'etre masques. visibility et non display : la
|
||||||
|
place reste reservee, donc rien ne saute quand ils apparaissent. */
|
||||||
|
.auth-tabs.is-pending { visibility: hidden; }
|
||||||
.auth-form { display: flex; flex-direction: column; }
|
.auth-form { display: flex; flex-direction: column; }
|
||||||
.auth-form .btn-block { margin-top: 8px; }
|
.auth-form .btn-block { margin-top: 8px; }
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -121,7 +121,7 @@
|
|||||||
<p>Your passwords, encrypted locally.</p>
|
<p>Your passwords, encrypted locally.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="auth-tabs">
|
<div class="auth-tabs is-pending">
|
||||||
<button class="auth-tab is-active" data-tab="login">Login</button>
|
<button class="auth-tab is-active" data-tab="login">Login</button>
|
||||||
<button class="auth-tab" data-tab="register">Register</button>
|
<button class="auth-tab" data-tab="register">Register</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7037,14 +7037,20 @@ async function ensureLicence() {
|
|||||||
// Pas d'await chez l'appelant : l'ecran d'authentification ne doit pas
|
// Pas d'await chez l'appelant : l'ecran d'authentification ne doit pas
|
||||||
// attendre ce test pour s'afficher.
|
// attendre ce test pour s'afficher.
|
||||||
async function applyRegisterVisibility() {
|
async function applyRegisterVisibility() {
|
||||||
if (!Bridge.active) return;
|
|
||||||
let refused = false;
|
let refused = false;
|
||||||
try { await api('/ping'); }
|
if (Bridge.active) {
|
||||||
// Le 404 JSON exact de la 2e couche, pas n'importe quel 404 : le verrou du
|
try { await api('/ping'); }
|
||||||
// jeton repond aussi 404, mais sans corps JSON.
|
// Le 404 JSON exact de la 2e couche, pas n'importe quel 404 : le verrou
|
||||||
catch (e) { refused = (e.status === 404 && e.body && e.body.error === 'Not found'); }
|
// du jeton repond aussi 404, mais sans corps JSON.
|
||||||
|
catch (e) { refused = (e.status === 404 && e.body && e.body.error === 'Not found'); }
|
||||||
|
}
|
||||||
const tabs = document.querySelector('.auth-tabs');
|
const tabs = document.querySelector('.auth-tabs');
|
||||||
if (tabs) tabs.classList.toggle('is-hidden', refused);
|
// Les onglets naissent invisibles (is-pending) : on ne les revele qu'une
|
||||||
|
// fois la reponse connue, sinon Register clignote avant d'etre masque.
|
||||||
|
if (tabs) {
|
||||||
|
tabs.classList.toggle('is-hidden', refused);
|
||||||
|
tabs.classList.remove('is-pending');
|
||||||
|
}
|
||||||
if (refused) {
|
if (refused) {
|
||||||
$$('.auth-tab').forEach(x => x.classList.toggle('is-active', x.dataset.tab === 'login'));
|
$$('.auth-tab').forEach(x => x.classList.toggle('is-active', x.dataset.tab === 'login'));
|
||||||
$('#loginForm').classList.remove('is-hidden');
|
$('#loginForm').classList.remove('is-hidden');
|
||||||
|
|||||||
Reference in New Issue
Block a user