From efb1869613a93ff5d1e6549ae6072e1c5314989b Mon Sep 17 00:00:00 2001
From: VIAUD Nathan <nathan.viaud@inria.fr>
Date: Tue, 5 Dec 2023 13:28:46 +0000
Subject: [PATCH] feat: preview hot reload

---
 electron/components/ipc.js     | 3 ++-
 electron/components/preview.js | 9 ++++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/electron/components/ipc.js b/electron/components/ipc.js
index b6d7aae7..8614a2eb 100644
--- a/electron/components/ipc.js
+++ b/electron/components/ipc.js
@@ -1,7 +1,7 @@
 const path = require('path');
 const store = require('./store');
 const { ipcMain } = require('electron');
-const { runPreview } = require('./preview');
+const { runPreview, updatePreview } = require('./preview');
 const { getRecentFiles, pickEpocProject, openEpocProject, newEpocProject, saveEpocProject, exportProject, writeProjectData, writeEpocData, readProjectData, copyFileToWorkdir } = require('./file');
 const { Menu } = require('electron');
 const contextMenu = require('./contextMenu');
@@ -100,6 +100,7 @@ const setupIpcListener = function (targetWindow) {
         if(event.sender !== targetWindow.webContents) return;
 
         await writeEpocData(store.state.projects[targetWindow.id].workdir, data);
+        updatePreview();
     });
 
     ipcMain.on('importFile', async (event, data) => {
diff --git a/electron/components/preview.js b/electron/components/preview.js
index e5fb0dd4..3efe6f79 100644
--- a/electron/components/preview.js
+++ b/electron/components/preview.js
@@ -82,6 +82,12 @@ function createPreviewServer () {
     });
 }
 
+function updatePreview() {
+    if (!previewWindow) return;
+
+    previewWindow.reload();
+}
+
 async function createPreviewWindow(server, contentPath) {
     if (!previewWindow) {
         previewWindow = new BrowserWindow({
@@ -124,5 +130,6 @@ const cleanPreview = function () {
 
 module.exports = {
     runPreview,
-    cleanPreview
+    cleanPreview,
+    updatePreview
 };
\ No newline at end of file
-- 
GitLab