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