Manas Paul
Manas Paul

Reputation: 86

window.close() is not a function in electron What I am doing wrong?

Here is my code Github repo url

const {app, Menu, ipcMain} = require('electron');
const mainWindow = require("./windows/mainWindow");

// Catching events from clients
ipcMain.on("login", ()=>{
  dashboardWindow();
  mainWindow.close();
})

./windows/mainWindow file:

// Initialize main window
const mainWindow = () => {
  let mainWindow = new BrowserWindow({
      autoHideMenuBar: true,
      webPreferences: {
                  nodeIntegration: true
                      }
    });
  // Load html in window
  mainWindow.loadFile("./templates/index.html")
  mainWindow.webContents.openDevTools();
}

module.exports = mainWindow;

How could I close a window?

Upvotes: 0

Views: 1126

Answers (1)

MauriceNino
MauriceNino

Reputation: 6747

mainWindow is a function, so you need to call it and inside the function also return the window:

const {app, Menu, ipcMain} = require('electron');
const mainWindowFunc = require("./windows/mainWindow");

const mainWindow = mainWindowFunc(); // <-- Call function

ipcMain.on("login", ()=>{
  dashboardWindow();
  mainWindow.close();  // <-- Now close should be available, because you call it on the instance of BrowserWindow
})

./windows/mainWindow file:

const mainWindow = () => {
  let mainWindow = new BrowserWindow({
      autoHideMenuBar: true,
      webPreferences: {
                  nodeIntegration: true
                      }
    });

  mainWindow.loadFile("./templates/index.html")
  mainWindow.webContents.openDevTools();
  return mainWindow; // <-- return window
}

module.exports = mainWindow;

Upvotes: 3

Related Questions