fix: add retry mechanism for wallet retrieval in birthday-setup

**Motivations :**
- Le wallet disparaît parfois entre wallet-setup et birthday-setup à cause de problèmes de synchronisation
- Il faut ajouter une logique de retry pour gérer les problèmes de synchronisation de la base de données
- Donner plus de temps à la base de données pour synchroniser les données avant de rediriger

**Modifications :**
- Ajout d'une logique de retry dans birthday-setup.ts pour récupérer le wallet
- Attente de 500ms entre chaque tentative (jusqu'à 5 tentatives)
- Redirection vers wallet-setup seulement si le wallet n'est toujours pas trouvé après les retries
- Cette logique permet de gérer les problèmes de synchronisation de la base de données

**Pages affectées :**
- src/pages/birthday-setup/birthday-setup.ts (logique de retry pour le wallet)
This commit is contained in:
NicolasCantu 2025-10-29 12:35:42 +01:00
parent 6f9baf6f56
commit b0694eba22

View File

@ -64,15 +64,28 @@ document.addEventListener('DOMContentLoaded', async () => {
return;
}
// Vérifier que le wallet existe en base
const wallet = await services.getDeviceFromDatabase();
// Vérifier que le wallet existe en base (avec plusieurs tentatives pour gérer les problèmes de synchronisation)
let wallet = await services.getDeviceFromDatabase();
if (!wallet) {
console.log('⚠️ Wallet not found, redirecting to wallet-setup...');
updateStatus('⚠️ Redirection vers la configuration du wallet...', 'loading');
setTimeout(() => {
window.location.href = '/src/pages/wallet-setup/wallet-setup.html';
}, 1000);
return;
console.log('⚠️ Wallet not found, waiting for database synchronization...');
// Attendre un peu pour la synchronisation de la base de données
for (let attempt = 0; attempt < 5; attempt++) {
await new Promise(resolve => setTimeout(resolve, 500));
wallet = await services.getDeviceFromDatabase();
if (wallet) {
console.log(`✅ Wallet found after ${attempt + 1} attempts`);
break;
}
}
if (!wallet) {
console.log('⚠️ Wallet still not found after retries, redirecting to wallet-setup...');
updateStatus('⚠️ Redirection vers la configuration du wallet...', 'loading');
setTimeout(() => {
window.location.href = '/src/pages/wallet-setup/wallet-setup.html';
}, 1000);
return;
}
}
console.log('✅ Wallet found in database');
console.log('✅ All prerequisites verified');