diff --git a/src/window-creators/index.js b/src/window-creators/index.js
index 80b22c2a..d87f000e 100644
--- a/src/window-creators/index.js
+++ b/src/window-creators/index.js
@@ -327,7 +327,9 @@ const createLoadingWindow = async () => {
'loadingWindow',
{
width: 350,
- height: 350
+ height: 350,
+ maximizable: false,
+ fullscreenable: false
}
)
diff --git a/src/window-creators/layouts/app-init.html b/src/window-creators/layouts/app-init.html
index 82f5afe4..29ded962 100644
--- a/src/window-creators/layouts/app-init.html
+++ b/src/window-creators/layouts/app-init.html
@@ -22,6 +22,44 @@
font-family: "Roboto", sans-serif;
}
+ .win-control-btn {
+ position: absolute;
+ top: 0;
+ right: 0;
+ display: block;
+ min-height: 30px;
+ margin: 0;
+ padding: 5px;
+ }
+
+ .minimize-btn {
+ position: relative;
+ display: block;
+ width: 30px;
+ height: 30px;
+ border-radius: 50%;
+ background-color: #172d3e;
+ transition: background-color .3s;
+ cursor: pointer;
+ }
+
+ .minimize-btn::after {
+ content: "";
+ display: block;
+ position: absolute;
+ width: 12px;
+ height: 1px;
+ background: #9b9a9a;
+ bottom: 9px;
+ left: calc((30px - 12px) / 2);
+ }
+
+ .minimize-btn:hover,
+ .minimize-btn:active,
+ .minimize-btn:focus {
+ background-color: #1c3649;
+ }
+
.lds-roller {
display: inline-block;
position: absolute;
@@ -190,6 +228,9 @@
+
@@ -210,6 +251,15 @@
window.addEventListener('load', () => {
const rollers = document.getElementsByClassName('lds-roller')
const descriptionElem = document.getElementById('description')
+ const minBtnElem = document.getElementById('minBtn')
+
+ minBtnElem.onclick = async () => {
+ try {
+ await window.bfxReportElectronApi?.hideLoadingWindow()
+ } catch (err) {
+ console.error(err)
+ }
+ }
setTimeout(() => {
for (const roller of rollers) {
diff --git a/src/window-creators/main-renderer-ipc-bridge/general-ipc-channel-handlers.js b/src/window-creators/main-renderer-ipc-bridge/general-ipc-channel-handlers.js
index 8b82107a..7fbb45a2 100644
--- a/src/window-creators/main-renderer-ipc-bridge/general-ipc-channel-handlers.js
+++ b/src/window-creators/main-renderer-ipc-bridge/general-ipc-channel-handlers.js
@@ -6,10 +6,25 @@ const wins = require('../windows')
const IpcChannelHandlers = require('./ipc.channel.handlers')
class GeneralIpcChannelHandlers extends IpcChannelHandlers {
+ #hideLoadingWindow = null
+
+ constructor (...args) {
+ super(...args)
+
+ // Resolve circular dependency issue
+ this.#hideLoadingWindow = require(
+ '../change-loading-win-visibility-state'
+ ).hideLoadingWindow
+ }
+
async exitHandler (event, args) {
return app.exit(args?.code ?? 0)
}
+ async hideLoadingWindowHandler (event, args) {
+ await this.#hideLoadingWindow()
+ }
+
async getTitleHandler (event, args) {
return wins.mainWindow.getTitle()
}
diff --git a/src/window-creators/main-renderer-ipc-bridge/preload.js b/src/window-creators/main-renderer-ipc-bridge/preload.js
index c64eacc1..24a9ee1f 100644
--- a/src/window-creators/main-renderer-ipc-bridge/preload.js
+++ b/src/window-creators/main-renderer-ipc-bridge/preload.js
@@ -11,6 +11,7 @@ const CHANNEL_NAMES = {
const GENERAL_INVOKE_METHOD_NAMES = {
EXIT: 'exit',
+ HIDE_LOADING_WINDOW: 'hideLoadingWindow',
GET_TITLE: 'getTitle'
}
const GENERAL_EVENT_METHOD_NAMES = {