fix: improve birthday-setup waiting mechanism and button text

**Motivations :**
- Le texte du bouton était toujours 'Terminer l'initialisation' au lieu de 'Synchroniser les blocs'
- La boucle d'attente de la hauteur de bloc était inefficace et atteignait le timeout
- Il faut une approche plus robuste pour attendre le handshake

**Modifications :**
- Changement du texte du bouton de 'Terminer l'initialisation' à 'Synchroniser les blocs'
- Remplacement de la boucle d'attente par une approche basée sur Promise avec timeout
- Augmentation du timeout à 15 secondes pour laisser plus de temps au handshake
- Amélioration de la logique d'attente de la hauteur de bloc

**Pages affectées :**
- src/pages/birthday-setup/birthday-setup.html (texte du bouton)
- src/pages/birthday-setup/birthday-setup.ts (mécanisme d'attente)
This commit is contained in:
NicolasCantu 2025-10-28 23:32:53 +01:00
parent 309e2902cf
commit ce38e01037
2 changed files with 20 additions and 16 deletions

View File

@ -112,7 +112,7 @@
<div class="progress-bar" id="progressBar"></div>
</div>
<button class="continue-btn" id="continueBtn" disabled>Terminer l'initialisation</button>
<button class="continue-btn" id="continueBtn" disabled>Synchroniser les blocs</button>
</div>
<script type="module" src="./birthday-setup.ts"></script>

View File

@ -67,22 +67,26 @@ document.addEventListener('DOMContentLoaded', async () => {
// Attendre que la hauteur de bloc soit définie avant de mettre à jour la date anniversaire
updateStatus('⏳ Attente de la synchronisation avec le réseau...', 'loading');
let blockHeightAttempts = 0;
const blockHeightMaxAttempts = 100; // Augmenter à 100 tentatives (10 secondes)
while (blockHeightAttempts < blockHeightMaxAttempts) {
const blockHeight = services.getCurrentBlockHeight();
if (blockHeight !== -1) {
console.log(`✅ Block height set: ${blockHeight}`);
break;
}
console.log(`⏳ Waiting for block height (attempt ${blockHeightAttempts + 1}/${blockHeightMaxAttempts})...`);
await new Promise(resolve => setTimeout(resolve, 100));
blockHeightAttempts++;
}
// Attendre que la hauteur de bloc soit définie via le handshake
await new Promise<void>((resolve, reject) => {
const timeout = setTimeout(() => {
reject(new Error('Timeout waiting for block height'));
}, 15000); // 15 secondes de timeout
if (services.getCurrentBlockHeight() === -1) {
throw new Error('Failed to get block height from relay');
}
const checkBlockHeight = () => {
const blockHeight = services.getCurrentBlockHeight();
if (blockHeight !== -1) {
console.log(`✅ Block height set: ${blockHeight}`);
clearTimeout(timeout);
resolve();
} else {
setTimeout(checkBlockHeight, 100);
}
};
checkBlockHeight();
});
// Mettre à jour la date anniversaire du wallet
await services.updateDeviceBlockHeight();