fix: attendre que le renderer soit prêt avant d'envoyer events

Problème : mainWindow.webContents.send() appelé avant que la page soit chargée
→ Events perdus, interface ne se met pas à jour

Solution :
- Nouveau flag rendererReady
- Event 'did-finish-load' pour détecter quand le renderer est prêt
- Tous les webContents.send() vérifient maintenant rendererReady
- Envoi de l'état initial du serveur quand interface charge

Résultat : Interface reçoit toujours les updates d'état serveur
This commit is contained in:
2026-06-19 13:31:38 +02:00
parent ad214f644b
commit bc2d5a0940
+17 -4
View File
@@ -14,6 +14,7 @@ let mainWindow = null;
let tray = null;
let serverProcess = null;
let serverStarted = false;
let rendererReady = false;
const SERVER_PORT = process.env.PORT || 3000;
const SERVER_URL = `http://localhost:${SERVER_PORT}`;
@@ -40,6 +41,17 @@ function createWindow() {
// Charger l'interface dashboard
mainWindow.loadFile(path.join(__dirname, 'ui', 'index.html'));
// Attendre que le renderer soit prêt
mainWindow.webContents.on('did-finish-load', () => {
rendererReady = true;
console.log('✅ Interface chargée');
// Envoyer l'état initial du serveur
if (mainWindow) {
mainWindow.webContents.send('server:status', { running: serverStarted });
}
});
// DevTools en mode dev
if (isDev) {
mainWindow.webContents.openDevTools();
@@ -48,6 +60,7 @@ function createWindow() {
// Cleanup à la fermeture
mainWindow.on('closed', () => {
mainWindow = null;
rendererReady = false;
});
}
@@ -159,7 +172,7 @@ async function startServer() {
console.log(isError ? '[Serveur Error]' : '[Serveur]', output);
if (mainWindow) {
if (mainWindow && rendererReady) {
mainWindow.webContents.send('server:log', {
level: isError ? 'error' : 'info',
message: output.trim()
@@ -172,7 +185,7 @@ async function startServer() {
serverStarted = true;
console.log('✅ Serveur démarré (détecté via stderr)');
if (mainWindow) {
if (mainWindow && rendererReady) {
mainWindow.webContents.send('server:status', { running: true });
}
@@ -186,7 +199,7 @@ async function startServer() {
console.error('❌ Erreur démarrage serveur:', error);
serverStarted = false;
if (mainWindow) {
if (mainWindow && rendererReady) {
mainWindow.webContents.send('server:status', { running: false, error: error.message });
}
@@ -198,7 +211,7 @@ async function startServer() {
serverProcess = null;
serverStarted = false;
if (mainWindow) {
if (mainWindow && rendererReady) {
mainWindow.webContents.send('server:status', { running: false });
}