diff --git a/assets/jsons/translations/de.json b/assets/jsons/translations/de.json index d314cc5e..89a76ea6 100644 --- a/assets/jsons/translations/de.json +++ b/assets/jsons/translations/de.json @@ -21,6 +21,9 @@ "warning": "Achtung", "continue": "Weiter" }, + "title-bar": { + "outdated": "veraltet" + }, "nav-bar": { "add-version": "Version hinzufügen", "settings": "Einstellungen", diff --git a/assets/jsons/translations/en.json b/assets/jsons/translations/en.json index 699fd52a..12ff1c77 100644 --- a/assets/jsons/translations/en.json +++ b/assets/jsons/translations/en.json @@ -21,6 +21,9 @@ "warning": "Warning", "continue": "Continue" }, + "title-bar": { + "outdated": "outdated" + }, "nav-bar": { "add-version": "Add a version", "settings": "Settings", diff --git a/assets/jsons/translations/es.json b/assets/jsons/translations/es.json index 5fc70a53..8eeb518a 100644 --- a/assets/jsons/translations/es.json +++ b/assets/jsons/translations/es.json @@ -21,6 +21,9 @@ "warning": "Advertencia", "continue": "Continuar" }, + "title-bar": { + "outdated": "obsoleto" + }, "nav-bar": { "add-version": "Agregar una versión", "settings": "Ajustes", diff --git a/assets/jsons/translations/fr.json b/assets/jsons/translations/fr.json index c377941b..81bc6068 100644 --- a/assets/jsons/translations/fr.json +++ b/assets/jsons/translations/fr.json @@ -21,6 +21,9 @@ "warning": "Attention", "continue": "Continuer" }, + "title-bar": { + "outdated": "obsolète" + }, "nav-bar": { "add-version": "Ajouter une version", "settings": "Paramètres", diff --git a/assets/jsons/translations/ja.json b/assets/jsons/translations/ja.json index 4e3b9ff3..207b822e 100644 --- a/assets/jsons/translations/ja.json +++ b/assets/jsons/translations/ja.json @@ -21,6 +21,9 @@ "warning": "警告", "continue": "続ける" }, + "title-bar": { + "outdated": "時代遅れ" + }, "nav-bar": { "add-version": "バージョンを追加", "settings": "設定", diff --git a/assets/jsons/translations/ko.json b/assets/jsons/translations/ko.json index b76e9490..dc40fd30 100644 --- a/assets/jsons/translations/ko.json +++ b/assets/jsons/translations/ko.json @@ -21,6 +21,9 @@ "warning": "경고", "continue": "계속" }, + "title-bar": { + "outdated": "구식" + }, "nav-bar": { "add-version": "버전 추가", "settings": "설정", diff --git a/assets/jsons/translations/ru.json b/assets/jsons/translations/ru.json index 71af4334..013e151a 100644 --- a/assets/jsons/translations/ru.json +++ b/assets/jsons/translations/ru.json @@ -21,6 +21,9 @@ "warning": "Внимание", "continue": "Продолжить" }, + "title-bar": { + "outdated": "устаревший" + }, "nav-bar": { "add-version": "Добавить версию игры", "settings": "Настройки", diff --git a/assets/jsons/translations/zh-tw.json b/assets/jsons/translations/zh-tw.json index 6511eb09..d8016865 100644 --- a/assets/jsons/translations/zh-tw.json +++ b/assets/jsons/translations/zh-tw.json @@ -21,6 +21,9 @@ "warning": "警告", "continue": "繼續" }, + "title-bar": { + "outdated": "過時" + }, "nav-bar": { "add-version": "新增版本", "settings": "設定", diff --git a/assets/jsons/translations/zh.json b/assets/jsons/translations/zh.json index a35dfca1..999685f1 100644 --- a/assets/jsons/translations/zh.json +++ b/assets/jsons/translations/zh.json @@ -21,6 +21,9 @@ "warning": "警告", "continue": "继续" }, + "title-bar": { + "outdated": "过时" + }, "nav-bar": { "add-version": "添加版本", "settings": "设置", 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..b17647e6 100644 --- a/src/renderer/components/title-bar/title-bar.component.tsx +++ b/src/renderer/components/title-bar/title-bar.component.tsx @@ -11,28 +11,59 @@ import "./title-bar.component.css"; import { useService } from "renderer/hooks/use-service.hook"; import { lastValueFrom } from "rxjs"; import { useWindowControls } from "renderer/hooks/use-window-controls.hook"; +import { useTranslationV2 } from "renderer/hooks/use-translation.hook"; + +function TitleBarTags() { + const ipcService = useService(IpcService); + const t = useTranslationV2(); + + 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 && + + {t.text("title-bar.outdated")} + + } + ; +} export default function TitleBar({ template = "index.html" }: { template: AppWindow }) { - const ipcService = useService(IpcService); const audio = useService(AudioPlayerService); const windowControls = useWindowControls(); 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 +107,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); }