From 506968b62a99d3864665b80eff7b80090f11d859 Mon Sep 17 00:00:00 2001 From: Pierre Marx Date: Thu, 4 Sep 2025 16:57:32 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20Remplacer=20le=20bouton=20"D=C3=A9conne?= =?UTF-8?q?cter"=20par=20"Quitter"=20avec=20fermeture=20compl=C3=A8te?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Changement du texte du bouton de "Déconnexion" à "Quitter" - Le bouton effectue maintenant une déconnexion puis ferme l'application - Ajout d'un handler IPC 'quit-app' pour fermer proprement l'application - Fermeture propre de la connexion SignalR avant l'arrêt - Conservation de l'animation de déconnexion pour une transition fluide - Mise à jour du changelog avec la version 1.2.15 --- docs/changelog.md | 15 +++++++++++++++ index.html | 2 +- main.js | 16 ++++++++++++++++ renderer.js | 22 +++------------------- 4 files changed, 35 insertions(+), 20 deletions(-) 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);