import './ipc';



import { app, BrowserWindow, Menu } from 'electron';

import { isDev } from './env';

import { createMainWindow, createIndexWindow } from './utils/window';

import { getAppInfo} from "./utils";



// 隐藏所有菜单

Menu.setApplicationMenu(null);



let mainWindow: BrowserWindow | null = null;



function main() {

  mainWindow = createMainWindow();

  return mainWindow;

}



// 非开发环境,只允许一个实例运行

if (!isDev) {

  // 是否取得了单一实例锁

  const gotTheLock = app.requestSingleInstanceLock();



  if (gotTheLock) {

    app.on('second-instance', () => {

      // 开启一个新的窗口

      createIndexWindow();

    });

  } else {

    // 没有取得单一实例锁,则退出应用

    app.exit(0);

  }

}



// 生命周期管理

app.whenReady().then(() => {

  // 获取应用信息

  const $appInfo = getAppInfo();

  if ($appInfo?.productName && $appInfo?.appId) {

    app.setName($appInfo.productName);

    app.setAppUserModelId($appInfo.appId);

  }



  main();



  app.on('activate', () => {

    if (BrowserWindow.getAllWindows().length === 0) {

      main();

    }

  });

});



app.on('window-all-closed', () => {

  if (process.platform !== 'darwin') {

    app.quit();

  }

});