// main.js // const { app, BrowserWindow} = require('electron'); const { app, BrowserWindow, ipcMain } = require('electron'); const fs = require('fs'); const path = require('path'); const jquery = require('jquery'); let onlineStatus = true; const { dialog } = require('electron'); const saveFile = require('./savexml') require('dotenv').config() const auto_close= process.env.DISABLE_AUTO_CLOSE; const auto_close_time = parseInt(process.env.AUTO_CLOSE_TIME) * 1000; let mainWindow; async function createWindow() { mainWindow = new BrowserWindow({ width: 1200, height: 800, webPreferences: { nodeIntegration: true, contextIsolation: false, }, }); mainWindow.loadFile('dashboard.html'); // Create an HTML file for your interface mainWindow.on('closed', function () { mainWindow = null; }); setInterval(checkInternetConnection, 5000); } async function checkInternetConnection() { try { const response = await fetch('https://www.google.com'); if (response.ok && onlineStatus) { onlineStatus = false; if (auto_close === 'TRUE') { }else{ dialog.showMessageBox(mainWindow, { type: 'info', message: `Internet is available. Click OK to close the app. Otherwise app will auto close in ${auto_close_time/1000} Seconds`, buttons: ['OK'], }); //Send the tigger to AutoSave the question Paper when System come's online mainWindow.webContents.send('button-click'); setTimeout(() => { app.quit(); }, auto_close_time); } } else if (!response.ok && !onlineStatus) { onlineStatus = true; } } catch (error) { console.error('Error checking internet connection'); } } app.on('ready', createWindow); app.on('window-all-closed', function () { if (process.platform !== 'darwin') { app.quit(); } }); app.on('activate', function () { if (mainWindow === null) { createWindow(); } });