const { app, BrowserWindow, ipcMain } = require('electron');
const path = require('path');

app.commandLine.appendSwitch('autoplay-policy', 'no-user-gesture-required');

let mainWindow;
let childWindow = null;

function createWindow() {
  mainWindow = new BrowserWindow({
    width: 460,
    height: 460,
    resizable: false,
    frame: false,
    icon: path.join(__dirname, 'launcher_icon.ico'),
    webPreferences: {
      preload: path.join(__dirname, 'preload.js'),
      contextIsolation: true,
      nodeIntegration: false,
      sandbox: false
    }
  });

  mainWindow.loadFile('index.html');
  mainWindow.setMenuBarVisibility(false);
  mainWindow.on('closed', () => { mainWindow = null; });
}

app.whenReady().then(createWindow);

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit();
});

app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) createWindow();
});

ipcMain.on('window-close', (event) => {
  const win = BrowserWindow.fromWebContents(event.sender);
  if (win && !win.isDestroyed()) win.close();
});

ipcMain.on('open-child-window', (event, { url, label, icon }) => {
  if (childWindow && !childWindow.isDestroyed()) {
    childWindow.webContents.send('set-url', { url, label, icon });
    childWindow.focus();
    return;
  }

  childWindow = new BrowserWindow({
    width: 800,
    height: 600,
    frame: false,
    icon: path.join(__dirname, 'launcher_icon.ico'),
    webPreferences: {
      preload: path.join(__dirname, 'preload.js'),
      contextIsolation: true,
      nodeIntegration: false,
      sandbox: false,
      webviewTag: true
    },
  });

  childWindow.loadFile('child.html');

  childWindow.webContents.once('did-finish-load', () => {
    childWindow.webContents.send('set-url', { url, label, icon });
  });

  childWindow.on('closed', () => {
    childWindow = null;
  });
});