mirror of
https://gitlab.com/futo-org/fcast.git
synced 2025-06-24 21:25:23 +00:00
Added toasts and UI update on device connection
This commit is contained in:
parent
5328087d64
commit
3142709d7f
17 changed files with 640 additions and 121 deletions
|
@ -11,6 +11,7 @@ import * as path from 'path';
|
|||
import * as log4js from "log4js";
|
||||
import yargs from 'yargs';
|
||||
import { hideBin } from 'yargs/helpers';
|
||||
import { ToastIcon } from 'common/components/Toast';
|
||||
const cp = require('child_process');
|
||||
|
||||
export class Main {
|
||||
|
@ -24,6 +25,7 @@ export class Main {
|
|||
static discoveryService: DiscoveryService;
|
||||
static tray: Tray;
|
||||
static logger: log4js.Logger;
|
||||
private static startupStorageClear = true;
|
||||
|
||||
private static toggleMainWindow() {
|
||||
if (Main.mainWindow) {
|
||||
|
@ -189,6 +191,9 @@ export class Main {
|
|||
l.emitter.on("seek", (message) => Main.playerWindow?.webContents?.send("seek", message));
|
||||
l.emitter.on("setvolume", (message) => Main.playerWindow?.webContents?.send("setvolume", message));
|
||||
l.emitter.on("setspeed", (message) => Main.playerWindow?.webContents?.send("setspeed", message));
|
||||
|
||||
l.emitter.on('connect', (message) => Main.mainWindow?.webContents?.send('connect', message));
|
||||
l.emitter.on('disconnect', (message) => Main.mainWindow?.webContents?.send('disconnect', message));
|
||||
l.start();
|
||||
|
||||
ipcMain.on('send-playback-error', (event: IpcMainEvent, value: PlaybackErrorMessage) => {
|
||||
|
@ -293,6 +298,11 @@ export class Main {
|
|||
}
|
||||
});
|
||||
|
||||
if (Main.startupStorageClear) {
|
||||
Main.mainWindow.webContents.send('startup-storage-clear');
|
||||
Main.startupStorageClear = false;
|
||||
}
|
||||
|
||||
Main.mainWindow.loadFile(path.join(__dirname, 'main/index.html'));
|
||||
Main.mainWindow.on('closed', () => {
|
||||
Main.mainWindow = null;
|
||||
|
@ -393,6 +403,7 @@ export function getComputerName() {
|
|||
|
||||
export async function errorHandler(err: NodeJS.ErrnoException) {
|
||||
Main.logger.error("Application error:", err);
|
||||
Main.mainWindow.webContents.send("toast", { message: err, icon: ToastIcon.ERROR });
|
||||
|
||||
const restartPrompt = await dialog.showMessageBox({
|
||||
type: 'error',
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
import { contextBridge, ipcRenderer } from 'electron';
|
||||
import 'common/main/Preload';
|
||||
import { toast } from 'common/components/Toast';
|
||||
|
||||
ipcRenderer.on("toast", (_event, value: any) => {
|
||||
toast(value.message, value.icon, value.duration);
|
||||
});
|
||||
|
||||
contextBridge.exposeInMainWorld('electronAPI', {
|
||||
updaterProgress: () => ipcRenderer.invoke('updater-progress'),
|
||||
|
|
|
@ -22,8 +22,9 @@
|
|||
</div>
|
||||
|
||||
<div id="connection-status">
|
||||
<div id="waiting-for-connection" class="non-selectable">Waiting for a connection</div>
|
||||
<div id="spinner" class="lds-ring"><div></div><div></div><div></div><div></div></div>
|
||||
<div id="connection-status-text" class="non-selectable">Waiting for a connection</div>
|
||||
<div id="connection-spinner" class="lds-ring"><div></div><div></div><div></div><div></div></div>
|
||||
<div id="connection-check"><div id="connection-check-mark"></div></div>
|
||||
</div>
|
||||
|
||||
<div id="update-view" class="card">
|
||||
|
@ -55,6 +56,10 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="toast-notification">
|
||||
<div id="toast-icon"></div>
|
||||
<div id="toast-text"></div>
|
||||
</div>
|
||||
<div id="window-can-be-closed" class="non-selectable">App will continue to run as tray app when the window is closed</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue