From a07e7111c1db3222316e8d7d6f63857fc0df1760 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Sun, 5 Nov 2023 00:36:12 +0100 Subject: [PATCH] [feature-274] Fix unable to verify original Steam or Oculus version + add "Restore folder" button for original oculus version --- src/main/ipcs/bs-launcher-ipcs.ts | 8 ++++++++ .../login-to-meta-modal.component.tsx | 2 +- .../components/svgs/bsm-icon.component.tsx | 7 ++++++- .../icons/backup-restore-icon.component.tsx | 9 +++++++++ .../svgs/icons/meta-icon.component.tsx | 4 ++-- src/renderer/pages/version-viewer.component.tsx | 17 ++++++++++++++++- .../bs-downloader.service.ts | 8 +++++++- 7 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 src/renderer/components/svgs/icons/backup-restore-icon.component.tsx diff --git a/src/main/ipcs/bs-launcher-ipcs.ts b/src/main/ipcs/bs-launcher-ipcs.ts index bd316c32..bdd0692a 100644 --- a/src/main/ipcs/bs-launcher-ipcs.ts +++ b/src/main/ipcs/bs-launcher-ipcs.ts @@ -4,6 +4,7 @@ import { BSLauncherService } from "../services/bs-launcher/bs-launcher.service" import { IpcService } from '../services/ipc.service'; import { from } from "rxjs"; import { SteamLauncherService } from "../services/bs-launcher/steam-launcher.service"; +import { OculusLauncherService } from "../services/bs-launcher/oculus-launcher.service"; const ipc = IpcService.getInstance(); @@ -22,3 +23,10 @@ ipc.on("bs-launch.restore-steamvr", (_, reply) => { const steamLauncher = SteamLauncherService.getInstance(); reply(from(steamLauncher.restoreSteamVR())); }); + +ipc.on("restore-original-oculus-folder", (_, reply) => { + const oculusLauncher = OculusLauncherService.getInstance(); + reply(from( + oculusLauncher.deleteBsSymlinks().then(() => oculusLauncher.restoreOriginalBeatSaber()) + )); +}) \ No newline at end of file diff --git a/src/renderer/components/modal/modal-types/bs-downgrade/login-to-meta-modal.component.tsx b/src/renderer/components/modal/modal-types/bs-downgrade/login-to-meta-modal.component.tsx index 6356b01d..2a9e9b66 100644 --- a/src/renderer/components/modal/modal-types/bs-downgrade/login-to-meta-modal.component.tsx +++ b/src/renderer/components/modal/modal-types/bs-downgrade/login-to-meta-modal.component.tsx @@ -27,7 +27,7 @@ export const LoginToMetaModal: ModalComponent = ({ resolver }) => {

Votre token de connexion à Meta est nécéssaire pour télécharger Beat Saber.

- + {/* TODO : Translate */}

En vous connectant à Meta, une fenètre de connexion s'ouvrira et vous pourrez alors débuter le processus de connexion. Veuillez à bien accepter les cookies sinon quoi, il se pourrait que l'on arrive pas à récupérer votre token de connexion pour démarrer le téléchargement. diff --git a/src/renderer/components/svgs/bsm-icon.component.tsx b/src/renderer/components/svgs/bsm-icon.component.tsx index af6a1ec7..49a4a5eb 100644 --- a/src/renderer/components/svgs/bsm-icon.component.tsx +++ b/src/renderer/components/svgs/bsm-icon.component.tsx @@ -61,8 +61,9 @@ import { ModelTypeBloqIcon } from "./icons/model-type-bloq-icon.component"; import { ChevronTopIcon } from "./icons/chevron-top-icon.component"; import { EyeCrossIcon } from "./icons/eye-cross-icon.component"; import { ShortcutIcon } from "./icons/shortcut-icon.component"; +import { BackupRestoreIcon } from "./icons/backup-restore-icon.component"; -export type BsmIconType = BsvMapCharacteristic | MSModelType | ("settings" | "trash" | "favorite" | "folder" | "bsNote" | "check" | "three-dots" | "twitch" | "eye" | "play" | "checkCircleIcon" | "discord" | "info" | "eye-cross" | "terminal" | "desktop" | "oculus" | "add" | "cross" | "task" | "github" | "close" | "thumbUpFill" | "timerFill" | "pause" | "twitter" | "sync" | "chevron-top" | "copy" | "steam" | "edit" | "export" | "patreon" | "search" | "bsMapDifficulty" | "link" | "unlink" | "download" | "filter" | "mee6" | "volume-up" | "volume-off" | "volume-down" | "shortcut" | "fr-FR-flag" | "es-ES-flag" | "en-US-flag" | "en-EN-flag" | "de-DE-flag" | "ru-RU-flag"); +export type BsmIconType = BsvMapCharacteristic | MSModelType | ("settings" | "trash" | "favorite" | "folder" | "bsNote" | "check" | "three-dots" | "twitch" | "eye" | "play" | "checkCircleIcon" | "discord" | "info" | "eye-cross" | "terminal" | "desktop" | "oculus" | "add" | "cross" | "task" | "github" | "close" | "thumbUpFill" | "timerFill" | "pause" | "twitter" | "sync" | "chevron-top" | "copy" | "steam" | "edit" | "export" | "patreon" | "search" | "bsMapDifficulty" | "link" | "unlink" | "download" | "filter" | "mee6" | "volume-up" | "volume-off" | "volume-down" | "shortcut" | "backup-restore" | "fr-FR-flag" | "es-ES-flag" | "en-US-flag" | "en-EN-flag" | "de-DE-flag" | "ru-RU-flag"); export const BsmIcon = memo(({ className, icon, style }: { className?: string; icon: BsmIconType; style?: CSSProperties }) => { // TODO : Very ugly very messy, need to find a better way to do this @@ -238,6 +239,10 @@ export const BsmIcon = memo(({ className, icon, style }: { className?: string; i return ; } + if (icon === "backup-restore") { + return ; + } + if (icon === MSModelType.Avatar) { return ; } diff --git a/src/renderer/components/svgs/icons/backup-restore-icon.component.tsx b/src/renderer/components/svgs/icons/backup-restore-icon.component.tsx new file mode 100644 index 00000000..db7ce378 --- /dev/null +++ b/src/renderer/components/svgs/icons/backup-restore-icon.component.tsx @@ -0,0 +1,9 @@ +import { ComponentProps } from "react" + +export function BackupRestoreIcon(props: ComponentProps<"svg">) { + return ( + + + + ) +} diff --git a/src/renderer/components/svgs/icons/meta-icon.component.tsx b/src/renderer/components/svgs/icons/meta-icon.component.tsx index ff88b999..c04b5313 100644 --- a/src/renderer/components/svgs/icons/meta-icon.component.tsx +++ b/src/renderer/components/svgs/icons/meta-icon.component.tsx @@ -1,6 +1,6 @@ -import React from 'react' +import { ComponentProps } from 'react' -export function MetaIcon(props: React.SVGProps) { +export function MetaIcon(props: ComponentProps<"svg">) { return ( diff --git a/src/renderer/pages/version-viewer.component.tsx b/src/renderer/pages/version-viewer.component.tsx index 0df205e3..56dbc044 100644 --- a/src/renderer/pages/version-viewer.component.tsx +++ b/src/renderer/pages/version-viewer.component.tsx @@ -99,6 +99,20 @@ export function VersionViewer() { }); } + const restoreOriginalOculusFolder = () => { + lastValueFrom(ipcService.sendV2("restore-original-oculus-folder")).then(() => { + notification.notifySuccess({ + title: "Restauration réussie", + desc: "Le dossier a été restauré avec succès" + }); + }).catch(() => { + notification.notifyError({ + title: "Erreur lors de la restauration", + desc: "Le dossier n'a pas pu être restauré" + }); + }); + } + return ( <> @@ -117,7 +131,8 @@ export function VersionViewer() { { + + const store = (() => { + if(version.metadata?.store){ return version.metadata.store; } + return version.steam ? BsStore.STEAM : BsStore.OCULUS; + })(); + + return this.getStoreDownloader(store).verifyBsVersion(version).finally(() => { this.resetDownloadState(); this.versionManager.askInstalledVersions(); });