diff --git a/src/index.js b/src/index.js index 509c5fe..0e3c336 100644 --- a/src/index.js +++ b/src/index.js @@ -102,6 +102,8 @@ function createSplashScreen() { if (!store.has("recent_files")) { store.set("recent_files", []); + } else { + updateRecentFiles(); } splash_screen.loadFile(path.join(app.getAppPath(), "src/splash.html")); @@ -200,13 +202,25 @@ function saveFile(json_data, create_new_file) { } } -function updateRecentFiles(new_file) { - store.set("default_dir", new_file); +function updateRecentFiles(new_file=null) { let recent_files = store.get("recent_files"); - if (recent_files.includes(new_file)) { - recent_files.splice(recent_files.indexOf(new_file), 1); + if (new_file != null) { + store.set("default_dir", new_file); + if (recent_files.includes(new_file)) { + recent_files.splice(recent_files.indexOf(new_file), 1); + } + recent_files.splice(0, 0, new_file); + } + let files_to_delete = []; + $.each(recent_files, (i, file) => { + if (!fs.existsSync(file)) { + console.log(file); + files_to_delete.push(i); + } + }); + for (let index of files_to_delete) { + recent_files.splice(index, 1); } - recent_files.splice(0, 0, new_file); store.set("recent_files", recent_files); updateMenuBar(); } @@ -295,10 +309,20 @@ function duplicateJson(json) { return JSON.parse(JSON.stringify(json)); } +function removeRecentFile(file) { + let recent_files = store.get("recent_files"); + recent_files.splice(recent_files.indexOf(file), 1); + store.set("recent_files", recent_files); +} + ipcMain.handle("get-store-value", (event, key) => { return store.get(key) }) +ipcMain.handle("remove-recent-file", (event, file) => { + removeRecentFile(file); +}) + ipcMain.on("create-new", (event) => { createNew(); }) diff --git a/src/js/splash.js b/src/js/splash.js index 825a86c..fcfcf45 100644 --- a/src/js/splash.js +++ b/src/js/splash.js @@ -3,29 +3,35 @@ const fs = require("fs"); async function showRecentFiles() { let recent_files = await ipcRenderer.invoke("get-store-value", "recent_files"); - let valid_recent_files = []; - for (let file of recent_files) { - if (fs.existsSync(file)) { - valid_recent_files.push(file); - } - } - if (valid_recent_files.length === 0) { + $("#recent-files").empty(); + if (recent_files.length === 0) { $("#recent-files").css("display", "none"); $("#splash").css("width", "100%") } else { - for (let file of valid_recent_files) { - let recent_file_link = $("") - .addClass("btn list-group-item list-group-item-action") + for (let file of recent_files) { + let recent_file_link = $("