const { app, BrowserWindow, ipcMain, dialog } = require('electron'); const path = require('path'); let store; let mainWindow; // Initialize store using dynamic import (async () => { const Store = await import('electron-store'); store = new Store.default(); })(); function createWindow() { mainWindow = new BrowserWindow({ width: 1200, height: 800, webPreferences: { nodeIntegration: true, contextIsolation: false, webviewTag: true } }); mainWindow.loadFile(path.join(__dirname, 'renderer/index.html')); mainWindow.setTitle('OneDrive Photos'); } app.whenReady().then(createWindow); app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit(); } }); app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) { createWindow(); } }); // Modified IPC handlers ipcMain.on('toggle-config', () => { mainWindow.webContents.send('toggle-config'); }); ipcMain.on('set-config', (event, config) => { if (store) { store.set('destFolder', config.destFolder); store.set('onedriveSource', config.onedriveSource); console.log('Configuration saved:', config); } }); ipcMain.on('load-config', (event) => { if (store) { const config = { destFolder: store.get('destFolder', ''), onedriveSource: store.get('onedriveSource', '') }; event.reply('config-loaded', config); } }); ipcMain.on('select-folder', (event) => { dialog.showOpenDialog({ properties: ['openDirectory'] }).then(result => { if (!result.canceled) { event.reply('folder-selected', result.filePaths[0]); } }).catch(err => { console.log(err); }); });