From d6f89ed6863ce94d3bd299726285aeaeb8e9ac49 Mon Sep 17 00:00:00 2001 From: Pierre Marx Date: Thu, 4 Sep 2025 13:43:26 -0400 Subject: [PATCH] refactor: nettoyage du code et correction de bugs mineurs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Correction de l'ouverture des DevTools uniquement en mode développement - Fix de la détection du mode développement pour le simulateur CTI via IPC - Suppression de la boucle de retry infinie pour Choices.js - Suppression du code mort (fonction updateSignalRStatus vide) - Amélioration de la gestion d'erreur avec fallback natif pour Choices.js --- cti-simulator.js | 28 ++++++++++++++++------------ docs/changelog.md | 13 +++++++++++++ main.js | 11 ++++++++--- renderer.js | 8 +------- 4 files changed, 38 insertions(+), 22 deletions(-) diff --git a/cti-simulator.js b/cti-simulator.js index 31262f8..1af6935 100644 --- a/cti-simulator.js +++ b/cti-simulator.js @@ -282,18 +282,22 @@ class CTISimulator { const ctiSimulator = new CTISimulator(); // Exposer pour les tests en développement -if (process.env.NODE_ENV === 'development') { - window.ctiSimulator = ctiSimulator; - // Afficher le panneau de test après connexion - document.addEventListener('DOMContentLoaded', () => { - setTimeout(() => { - const mainPage = document.getElementById('mainPage'); - if (mainPage && mainPage.classList.contains('active')) { - ctiSimulator.showTestPanel(); - } - }, 2000); - }); -} +// Dans le contexte renderer, vérifier si on est en mode développement via une variable globale +window.ctiSimulator = ctiSimulator; + +// Afficher le panneau de test si en mode développement +ipcRenderer.invoke('is-development').then(isDev => { + if (isDev) { + document.addEventListener('DOMContentLoaded', () => { + setTimeout(() => { + const mainPage = document.getElementById('mainPage'); + if (mainPage && mainPage.classList.contains('active')) { + ctiSimulator.showTestPanel(); + } + }, 2000); + }); + } +}); // Démarrer la simulation automatique après connexion (optionnel) ipcRenderer.on('agent-logged-in', () => { diff --git a/docs/changelog.md b/docs/changelog.md index dd6ebf9..5a46d5b 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,18 @@ # Changelog - SimpleConnect Electron +## [1.0.2] - 2025-09-04 + +### Corrigé +- **DevTools** : Ouverture uniquement en mode développement au lieu de systématiquement +- **Mode développement** : Correction de la détection du mode dev pour le simulateur CTI via IPC +- **Choices.js** : Suppression de la boucle de retry infinie en cas d'échec de chargement +- **Code mort** : Suppression de la fonction `updateSignalRStatus()` vide et inutilisée + +### Technique +- Ajout du handler IPC `is-development` pour permettre au renderer de détecter le mode +- Amélioration de la gestion d'erreur pour Choices.js avec fallback natif sans retry +- Nettoyage du code en supprimant les fonctions vides et appels inutiles + ## [1.0.1] - 2024-09-04 ### Ajouté diff --git a/main.js b/main.js index 5ce5a9b..6219e64 100644 --- a/main.js +++ b/main.js @@ -34,10 +34,10 @@ function createWindow() { // Charger l'interface HTML mainWindow.loadFile('index.html'); - // Ouvrir les DevTools en mode développement ou toujours pour debug - // if (process.env.NODE_ENV === 'development') { + // Ouvrir les DevTools uniquement en mode développement + if (process.env.NODE_ENV === 'development') { mainWindow.webContents.openDevTools(); - // } + } // Gérer la fermeture de la fenêtre mainWindow.on('closed', () => { @@ -319,4 +319,9 @@ ipcMain.handle('save-call-history', (event, callData) => { fs.writeFileSync(historyFile, JSON.stringify(history, null, 2)); return { success: true }; +}); + +// Vérifier si on est en mode développement +ipcMain.handle('is-development', () => { + return process.env.NODE_ENV === 'development'; }); \ No newline at end of file diff --git a/renderer.js b/renderer.js index 9fa43be..36befb7 100644 --- a/renderer.js +++ b/renderer.js @@ -14,7 +14,6 @@ let callStats = { // === GESTION DE LA CONNEXION === document.addEventListener('DOMContentLoaded', async () => { // Initialiser l'indicateur SignalR - updateSignalRStatus(); // Écouter les changements de statut SignalR ipcRenderer.on('signalr-status', (event, status) => { @@ -490,8 +489,7 @@ async function loadTerminals() { terminalSelect.appendChild(option); }); } - // Réessayer après un court délai - setTimeout(() => loadTerminals(), 500); + // Pas de retry automatique pour éviter une boucle infinie return; } @@ -585,10 +583,6 @@ function validateTerminal(terminal) { } // === GESTION INDICATEUR SIGNALR === -function updateSignalRStatus() { - // Fonction appelée au chargement pour initialiser l'interface -} - function updateSignalRIndicator(status) { const indicator = document.getElementById('signalrIndicator'); const text = document.getElementById('signalrText');