diff --git a/docs/changelog.md b/docs/changelog.md index 4f91de3..0ac4cf5 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,20 @@ # Changelog - SimpleConnect Electron +## [1.2.15] - 2025-09-04 + +### Modifié +- **Bouton de déconnexion remplacé par "Quitter"** : Changement du comportement de fermeture + - Le bouton "Déconnecter" devient "Quitter" pour plus de clarté + - Déconnexion automatique de l'agent avant fermeture + - Animation de déconnexion maintenue pour une transition fluide + - Fermeture propre de la connexion SignalR + - Arrêt complet de l'application après déconnexion + +### Technique +- Nouveau handler IPC `quit-app` pour fermer l'application +- Modification de `handleConfirm()` pour appeler la fermeture après déconnexion +- Délai de 1 seconde avant fermeture pour voir l'animation complète + ## [1.2.14] - 2025-09-04 ### Ajouté diff --git a/index.html b/index.html index 6ba8a01..66334a4 100644 --- a/index.html +++ b/index.html @@ -90,7 +90,7 @@ - + diff --git a/main.js b/main.js index 1389834..62846be 100644 --- a/main.js +++ b/main.js @@ -439,6 +439,22 @@ ipcMain.handle('logout', async () => { return { success: true }; }); +// Handler pour quitter l'application proprement +ipcMain.handle('quit-app', async () => { + // Fermer la connexion SignalR si elle existe + if (signalRConnection) { + try { + await signalRConnection.stop(); + console.log('Connexion SignalR fermée'); + } catch (error) { + console.error('Erreur lors de la fermeture de SignalR:', error); + } + } + + // Quitter l'application + app.quit(); +}); + // Obtenir l'agent actuel ipcMain.handle('get-current-agent', () => { if (!currentAgent || !agentConnectionInfo) return null; diff --git a/renderer.js b/renderer.js index 92f8f26..817955f 100644 --- a/renderer.js +++ b/renderer.js @@ -258,26 +258,10 @@ function showLogoutModal() { await ipcRenderer.invoke('logout'); // Attendre encore un peu pour une transition fluide - await new Promise(resolve => setTimeout(resolve, 500)); + await new Promise(resolve => setTimeout(resolve, 1000)); - // Réinitialiser et fermer - modal.classList.remove('active'); - hideLogoutProgress(); - currentAgent = null; - currentCentres = []; - activeCenter = null; - webviews = {}; - resetLoginForm(); // Réinitialiser le formulaire - showLoginPage(); - - // Forcer le focus après la fermeture complète de la modal - setTimeout(() => { - const accessCodeInput = document.getElementById('accessCode'); - if (accessCodeInput) { - accessCodeInput.focus(); - accessCodeInput.select(); - } - }, 200); + // Fermer l'application proprement + await ipcRenderer.invoke('quit-app'); cancelBtn.removeEventListener('click', handleCancel); confirmBtn.removeEventListener('click', handleConfirm);