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);