Skip to content

Commit ce42065

Browse files
Merge pull request #157 from Accedia/fix/changes-to-magic-button-logic
Fix/changes to magic button logic
2 parents ca91fbe + 239703c commit ce42065

File tree

2 files changed

+37
-10
lines changed

2 files changed

+37
-10
lines changed

electron-app/src/main.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ResponseData } from './interfaces/ResponseData';
2-
import { app, globalShortcut, ipcMain, shell } from 'electron';
2+
import { app, globalShortcut, ipcMain, shell,dialog } from 'electron';
33
import WindowManager from './utils/window_manager';
44
import importer from './utils/importer';
55
import { MESSAGE } from './constants/messages';
@@ -13,8 +13,11 @@ import { isAppDev, isDev } from './utils/is_dev';
1313
import log from 'electron-log';
1414
import { FirebaseService, SessionStatus } from './utils/firebase';
1515
import mitchell_importer from './utils/mitchell_importer';
16+
import os from 'os';
17+
import { spawn } from 'child_process';
1618

1719
const INPUT_SPEED_STORAGE_KEY = 'inputSpeed';
20+
const downloadFolderPath = path.join(os.homedir(), 'Downloads', 'FIT-Mitchell-Cloud-RO-Import-Tool\\FIT.bat');
1821

1922
if (isDev() && isAppDev(app)) {
2023
// eslint-disable-next-line @typescript-eslint/no-var-requires
@@ -60,9 +63,16 @@ class Main {
6063
app.on('second-instance', async (e, argv) => {
6164
const url = getCustomProtocolUrl(argv);
6265
if (argv.some((url) => url.includes('openVBS'))) {
63-
shell.openPath('C:\\FIT-Mitchell-Cloud-RO-Import-Tool\\FIT.bat');
64-
app.quit();
65-
return;
66+
try {
67+
const bat = spawn(downloadFolderPath, [], { windowsHide: true });
68+
bat.on('close', (code) => {
69+
log.info(`Child process exited with code ${code}`);
70+
app.quit();
71+
});
72+
return;
73+
} catch (error) {
74+
dialog.showErrorBox('Error', 'The specified file was not found: Downloads\\FIT-Mitchell-Cloud-RO-Import-Tool\\FIT.bat');
75+
}
6676
}
6777
this.finalUrl = url;
6878
if (this.windowManager.mainWindow) {

electron-app/src/utils/window_manager.ts

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { isAppDev, isDev } from './is_dev';
2-
import { app, BrowserWindow, screen, shell } from 'electron';
2+
import { app, BrowserWindow, screen, shell, dialog } from 'electron';
33
import * as path from 'path';
44
import { getCustomProtocolUrl } from './get_custom_protocol_url';
55
import { fetchDataAndStartImporter, store } from '../main';
@@ -11,6 +11,10 @@ import { FirebaseService } from './firebase';
1111
import { extractSessionIdFromUrl } from './extract_sessionid_from_url';
1212
import mitchell_importer from './mitchell_importer';
1313
import log from 'electron-log';
14+
import os from 'os';
15+
import { spawn } from 'child_process';
16+
17+
const downloadFolderPath = path.join(os.homedir(), 'Downloads', 'FIT-Mitchell-Cloud-RO-Import-Tool\\FIT.bat');
1418

1519
type MaybeBrowserWindow = BrowserWindow | null;
1620

@@ -63,14 +67,27 @@ class WindowManager {
6367

6468
public startLoading = (): void => {
6569
console.log('starting loading');
66-
this.loadingWindow = new BrowserWindow(WINDOW_CONFIG.loading);
70+
const shouldOpenVBS = process && process.argv.some((url) => url.includes('openVBS'))
71+
this.loadingWindow = new BrowserWindow({...WINDOW_CONFIG.loading,
72+
show: shouldOpenVBS ? false : true
73+
});
74+
if(shouldOpenVBS){
75+
this.loadingWindow.minimize();
76+
}
6777
this.loadLoadingWindowContent();
6878
this.loadingWindow.once('show', async () => {
6979
console.log('VBS URL', process.argv);
70-
if (process && process.argv.some((url) => url.includes('openVBS'))) {
71-
shell.openPath('C:\\FIT-Mitchell-Cloud-RO-Import-Tool\\FIT.bat');
72-
app.quit();
73-
return;
80+
if (shouldOpenVBS) {
81+
try {
82+
const bat = spawn(downloadFolderPath, [], { windowsHide: true });
83+
bat.on('close', (code) => {
84+
console.log(`Child process exited with code ${code}`);
85+
app.quit();
86+
});
87+
return;
88+
} catch (error) {
89+
dialog.showErrorBox('Error', 'The specified file was not found: Downloads\\FIT-Mitchell-Cloud-RO-Import-Tool\\FIT.bat');
90+
}
7491
}
7592
log.info('loading has started this is on show');
7693
const storedUrl = store.get('url') as string | null;

0 commit comments

Comments
 (0)