evita abertura de multiplas instancias
This commit is contained in:
parent
8eed72c15b
commit
97fa71f231
90
main.js
90
main.js
|
|
@ -1,4 +1,5 @@
|
|||
const { app, BrowserWindow, ipcMain, screen, net, dialog } = require('electron');
|
||||
// const { app: singleInstanceLock } = require('electron-single-instance');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
|
|
@ -22,6 +23,8 @@ const pusherUrl = 'autoatend.linco.work';
|
|||
autoUpdater.autoDownload = false;
|
||||
autoUpdater.autoInstallOnAppQuit = true;
|
||||
|
||||
//impede que o app seja executado mais de uma vez
|
||||
const gotTheLock = app.requestSingleInstanceLock();
|
||||
|
||||
// Função modificada para buscar dados da API
|
||||
async function readData() {
|
||||
|
|
@ -275,48 +278,63 @@ if(pjson.isBuildNow){
|
|||
}
|
||||
|
||||
|
||||
|
||||
// Inicialização do aplicativo modificada para verificar autenticação
|
||||
app.whenReady().then(async () => {
|
||||
|
||||
// Verifica se o usuário já está autenticado
|
||||
const token = await getAuthToken();
|
||||
|
||||
if (!token) {
|
||||
// Se não estiver autenticado, mostra a tela de login
|
||||
createLoginWindow();
|
||||
} else {
|
||||
// Se já estiver autenticado, verifica se tem operador selecionado
|
||||
// const operator = await getSelectedOperator();
|
||||
|
||||
if (!operator || operator === 'null' || operator === null || operator === undefined || operator === '') {
|
||||
// Se não tiver operador selecionado, mostra a tela de seleção
|
||||
createOperatorWindow();
|
||||
} else {
|
||||
// Se já tiver operador, inicia normalmente
|
||||
createFloatingWindow();
|
||||
createMainWindow();
|
||||
}
|
||||
if (!gotTheLock) {
|
||||
app.quit();
|
||||
} else {
|
||||
app.on('second-instance', () => {
|
||||
if (mainWin) {
|
||||
if (mainWin.isMinimized()) {
|
||||
mainWin.restore();
|
||||
}
|
||||
mainWin.focus();
|
||||
}
|
||||
createUpdateWindow();
|
||||
});
|
||||
|
||||
app.on('activate', () => {
|
||||
// No macOS é comum recriar uma janela no aplicativo quando o
|
||||
// ícone do dock é clicado e não há outras janelas abertas.
|
||||
if (BrowserWindow.getAllWindows().length === 0) {
|
||||
// Poderia recriar a janela principal aqui se necessário,
|
||||
// mas como temos a flutuante, talvez não precise.
|
||||
if (!floatingWin) createFloatingWindow();
|
||||
if (!mainWin) createMainWindow();
|
||||
if (!updateWin) createUpdateWindow();
|
||||
// Inicialização do aplicativo modificada para verificar autenticação
|
||||
app.whenReady().then(async () => {
|
||||
|
||||
// Verifica se o usuário já está autenticado
|
||||
const token = await getAuthToken();
|
||||
|
||||
if (!token) {
|
||||
// Se não estiver autenticado, mostra a tela de login
|
||||
createLoginWindow();
|
||||
} else {
|
||||
// Se já estiver autenticado, verifica se tem operador selecionado
|
||||
// const operator = await getSelectedOperator();
|
||||
|
||||
if (!operator || operator === 'null' || operator === null || operator === undefined || operator === '') {
|
||||
// Se não tiver operador selecionado, mostra a tela de seleção
|
||||
createOperatorWindow();
|
||||
} else {
|
||||
// Se já tiver operador, inicia normalmente
|
||||
createFloatingWindow();
|
||||
createMainWindow();
|
||||
}
|
||||
}
|
||||
createUpdateWindow();
|
||||
|
||||
app.on('activate', () => {
|
||||
// No macOS é comum recriar uma janela no aplicativo quando o
|
||||
// ícone do dock é clicado e não há outras janelas abertas.
|
||||
if (BrowserWindow.getAllWindows().length === 0) {
|
||||
// Poderia recriar a janela principal aqui se necessário,
|
||||
// mas como temos a flutuante, talvez não precise.
|
||||
if (!floatingWin) createFloatingWindow();
|
||||
if (!mainWin) createMainWindow();
|
||||
if (!updateWin) createUpdateWindow();
|
||||
}
|
||||
});
|
||||
|
||||
if(pjson.isBuildNow){
|
||||
autoUpdater.checkForUpdates();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
if(pjson.isBuildNow){
|
||||
autoUpdater.checkForUpdates();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
// Função para verificar se já existe um operador selecionado
|
||||
async function getSelectedOperator() {
|
||||
|
|
|
|||
|
|
@ -1,15 +1,16 @@
|
|||
{
|
||||
"name": "electronjs",
|
||||
"version": "1.0.0",
|
||||
"name": "autoatendcolab",
|
||||
"version": "1.0.7",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "electronjs",
|
||||
"version": "1.0.0",
|
||||
"name": "autoatendcolab",
|
||||
"version": "1.0.7",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@electron/remote": "^2.1.2",
|
||||
"electron-single-instance": "^0.0.2",
|
||||
"electron-updater": "^6.6.2",
|
||||
"jquery": "^3.7.1"
|
||||
},
|
||||
|
|
@ -2609,6 +2610,12 @@
|
|||
"chokidar": "^3.5.2"
|
||||
}
|
||||
},
|
||||
"node_modules/electron-single-instance": {
|
||||
"version": "0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/electron-single-instance/-/electron-single-instance-0.0.2.tgz",
|
||||
"integrity": "sha512-HWZ0BsGpFRuUU+8Cpf0ecDHYOqptuUyjup62sYnkl19//DtysiTZzeIWO9YXdbow3JErti/Zyi2yHO2e0yn1ew==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/electron-updater": {
|
||||
"version": "6.6.2",
|
||||
"resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.6.2.tgz",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "autoatendcolab",
|
||||
"version": "1.0.7",
|
||||
"version": "1.0.8",
|
||||
"main": "main.js",
|
||||
"isBuildNow": true,
|
||||
"scripts": {
|
||||
|
|
@ -38,6 +38,7 @@
|
|||
"description": "Sistema auxiliar para colaboradores de autoatendimento",
|
||||
"dependencies": {
|
||||
"@electron/remote": "^2.1.2",
|
||||
"electron-single-instance": "^0.0.2",
|
||||
"electron-updater": "^6.6.2",
|
||||
"jquery": "^3.7.1"
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue