diff --git a/src/main/main.ts b/src/main/main.ts index 42d73836..6d6fbf80 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -69,7 +69,7 @@ const installExtensions = async () => { .catch(log.error); }; -const createWindow = async (window: AppWindow = "launcher.html") => { +const createWindow = async (window: AppWindow) => { if (isDebug) { await installExtensions(); } @@ -131,7 +131,9 @@ if (!gotTheLock) { } else if (associatedFile) { FileAssociationService.getInstance().handleFileAssociation(associatedFile); } else { - createWindow(); + createWindow(process.platform === "linux" + ? "index.html" : "launcher.html" + ); } SteamLauncherService.getInstance().restoreSteamVR(); diff --git a/src/main/services/auto-updater.service.ts b/src/main/services/auto-updater.service.ts index ca2dfaab..9a054115 100644 --- a/src/main/services/auto-updater.service.ts +++ b/src/main/services/auto-updater.service.ts @@ -19,10 +19,16 @@ export class AutoUpdaterService { autoUpdater.autoDownload = false; } - public isUpdateAvailable(): Promise { - return autoUpdater.checkForUpdates().then(info => { - return !!info?.updateInfo && gt(info.updateInfo.version, autoUpdater.currentVersion.version); - }).catch(() => false); + public async isUpdateAvailable(): Promise { + return autoUpdater.checkForUpdates() + .then(info => { + return !!info?.updateInfo && gt( + info.updateInfo.version, autoUpdater.currentVersion.version + )}) + .catch(error => { + log.error("Could not get update", error); + return false; + }); } public downloadUpdate(): Observable { diff --git a/src/renderer/components/title-bar/title-bar.component.tsx b/src/renderer/components/title-bar/title-bar.component.tsx index 8cb4a1f1..4aad81b6 100644 --- a/src/renderer/components/title-bar/title-bar.component.tsx +++ b/src/renderer/components/title-bar/title-bar.component.tsx @@ -12,6 +12,51 @@ import { useService } from "renderer/hooks/use-service.hook"; import { lastValueFrom } from "rxjs"; import { useWindowControls } from "renderer/hooks/use-window-controls.hook"; +function TitleBarTags({ + ipcService +}: Readonly<{ + ipcService: IpcService +}>) { + const [previewVersion, setPreviewVersion] = useState(""); + const [outdated, setOutdated] = useState(false); + + useEffect(() => { + const requests: Promise[] = [ + lastValueFrom(ipcService.sendV2("current-version")) + ]; + if (window.electron.platform === "linux") { + requests.push(lastValueFrom(ipcService.sendV2("check-update"))); + } + + Promise.all(requests).then(([ currentVersion, outdated ]) => { + handlePrerelease(currentVersion); + setOutdated(outdated); + }); + }, []); + + const handlePrerelease = (version: string) => { + if (version.toLowerCase().includes("alpha")) { + return setPreviewVersion("ALPHA"); + } + if (version.toLowerCase().includes("beta")) { + return setPreviewVersion("BETA"); + } + } + + return <> + {previewVersion && + + {previewVersion} + + } + {outdated && + + Outdated + + } + ; +} + export default function TitleBar({ template = "index.html" }: { template: AppWindow }) { const ipcService = useService(IpcService); const audio = useService(AudioPlayerService); @@ -20,19 +65,6 @@ export default function TitleBar({ template = "index.html" }: { template: AppWin const volume = useObservable(() => audio.volume$, audio.volume); const color = useThemeColor("first-color"); - const [previewVersion, setPreviewVersion] = useState(null); - - useEffect(() => { - lastValueFrom(ipcService.sendV2("current-version")).then(version => { - if (version.toLowerCase().includes("alpha")) { - return setPreviewVersion("ALPHA"); - } - if (version.toLowerCase().includes("beta")) { - return setPreviewVersion("BETA"); - } - }); - }, []); - const [maximized, setMaximized] = useState(false); const closeWindow = () => { @@ -76,7 +108,7 @@ export default function TitleBar({ template = "index.html" }: { template: AppWin
BSManager - {previewVersion && {previewVersion}} +
diff --git a/src/renderer/services/auto-updater.service.ts b/src/renderer/services/auto-updater.service.ts index ccad3fae..2cfa7c78 100644 --- a/src/renderer/services/auto-updater.service.ts +++ b/src/renderer/services/auto-updater.service.ts @@ -31,7 +31,7 @@ export class AutoUpdaterService { this.ipcService = IpcService.getInstance(); } - public isUpdateAvailable(): Promise { + public async isUpdateAvailable(): Promise { return lastValueFrom(this.ipcService.sendV2("check-update")).catch(() => false); }