text: // Modules to control application life and create native browser window
  const { app, BrowserWindow, Menu } = require('electron');
  
  // Added for getting correct file path
  const path = require('path');
  const isDev = require('electron-is-dev');
  
  // Keep a global reference of the window object, if you don't, the window will
  // be closed automatically when the JavaScript object is garbage collected.
  let mainWindow;
  
  const appMenu = {
    label: 'File',
    submenu: [
      { label: 'About Application', selector: 'orderFrontStandardAboutPanel:' },
      { type: 'separator' },
      {
        label: 'Quit',
        accelerator: 'Command+Q',
        click: function () {
          app.quit();
        },
      },
    ],
  };
  
  const editMenu = {
    label: 'Edit',
    submenu: [
      { label: 'Undo', accelerator: 'CmdOrCtrl+Z', selector: 'undo:' },
      { label: 'Redo', accelerator: 'Shift+CmdOrCtrl+Z', selector: 'redo:' },
      { type: 'separator' },
      { label: 'Cut', accelerator: 'CmdOrCtrl+X', selector: 'cut:' },
      { label: 'Copy', accelerator: 'CmdOrCtrl+C', selector: 'copy:' },
      { label: 'Paste', accelerator: 'CmdOrCtrl+V', selector: 'paste:' },
      { label: 'Select All', accelerator: 'CmdOrCtrl+A', selector: 'selectAll:' },
    ],
  };
  
  const devMenu = {
    label: 'Development',
    submenu: [
      {
        label: 'Reload',
        accelerator: 'CmdOrCtrl+R',
        click: () => {
          BrowserWindow.getFocusedWindow().webContents.reloadIgnoringCache();
        },
      },
      {
        label: 'Toggle DevTools',
        accelerator: 'Alt+CmdOrCtrl+I',
        click: () => {
          BrowserWindow.getFocusedWindow().toggleDevTools();
        },
      },
    ],
  };
  
  const createWindow = () => {
    const menu = [appMenu, editMenu];
    if (isDev) {
      menu.push(devMenu);
    }
    Menu.setApplicationMenu(Menu.buildFromTemplate(menu));
  
    let plateFormOptions = {};
  
    if (process.platform === 'darwin') {
      plateFormOptions = {
        movable: true,
        frame: false,
        titleBarStyle: 'hiddenInset',
      };
    }
  
    // Create the browser window.
    mainWindow = new BrowserWindow({
      width: 1200,
      height: 900,
      minWidth: 1200,
      minHeight: 900,
      ...plateFormOptions,
      webPreferences: {
        webSecurity: false,
        nodeIntegration: true,
      },
    });
  
    mainWindow.loadURL(
      isDev
        ? 'http://localhost:3000'
        : `file://${path.join(__dirname, '../build/index.html')}`
    );
  
    // Emitted when the window is closed.
    mainWindow.on('closed', () => {
      // Dereference the window object, usually you would store windows
      // in an array if your app supports multi windows, this is the time
      // when you should delete the corresponding element.
      mainWindow = null;
    });
  };
  
  // This method will be called when Electron has finished
  // initialization and is ready to create browser windows.
  // Some APIs can only be used after this event occurs.
  app.on('ready', createWindow);
  
  // Quit when all windows are closed.
  app.on('window-all-closed', () => {
    // On OS X it is common for applications and their menu bar
    // to stay active until the user quits explicitly with Cmd + Q
    if (process.platform !== 'darwin') {
      app.quit();
    }
  });
  
  app.on('activate', () => {
    // On OS X it's common to re-create a window in the app when the
    // dock icon is clicked and there are no other windows open.
    if (mainWindow === null) {
      createWindow();
    }
  });
  
  // In this file you can include the rest of your app's specific main process
  // code. You can also put them in separate files and require them here.
  
  // for notification
  if (isDev) {
    app.setAppUserModelId(process.execPath);
  }
  