mirror of
https://github.com/Zagrios/bs-manager.git
synced 2026-07-03 14:08:25 +02:00
[chore] added a beat saber version outdated warning in the version view
This commit is contained in:
@@ -15,8 +15,7 @@ import { logRenderError } from "renderer";
|
||||
import { ModalExitCode, ModalService } from "renderer/services/modale.service";
|
||||
import { BSVersionOutdatedModal } from "renderer/components/modal/modal-types/bs-version-outdated-modal.component";
|
||||
import { ConfigurationService } from "renderer/services/configuration.service";
|
||||
import { coerce, lt, valid } from "semver";
|
||||
import { tryit } from "shared/helpers/error.helpers";
|
||||
import { safeLt } from "shared/helpers/semver.helpers";
|
||||
|
||||
export const AvailableVersionsContext = createContext<{ selectedVersion: BSVersion; setSelectedVersion: (version: BSVersion) => void }>(null);
|
||||
|
||||
@@ -34,12 +33,10 @@ export function AvailableVersionsList() {
|
||||
const t = useTranslation();
|
||||
|
||||
const startDownload = async (version: BSVersion) => {
|
||||
const showOutdated = !config.get("not-show-bs-version-outdated");
|
||||
const recommendedVersion = showOutdated ? versionManager.availableVersions$.value.find(v => v.recommended) : undefined;
|
||||
const showOutdated = !config.get("not-show-bs-version-outdated-modal");
|
||||
const recommendedVersion = versionManager.getRecommendedVersion();
|
||||
|
||||
const isVersionOutdated = recommendedVersion?.BSVersion ? (
|
||||
tryit(() => lt(valid(coerce(version.BSVersion)), valid(coerce(recommendedVersion.BSVersion)))).result ?? false
|
||||
) : false;
|
||||
const isVersionOutdated = safeLt(version.BSVersion, recommendedVersion?.BSVersion);
|
||||
|
||||
if (showOutdated && isVersionOutdated) {
|
||||
|
||||
|
||||
@@ -21,6 +21,9 @@ import { CreateLaunchShortcutModal } from "renderer/components/modal/modal-types
|
||||
import { lastValueFrom } from "rxjs";
|
||||
import { NotificationService } from "renderer/services/notification.service";
|
||||
import { BsDownloaderService } from "renderer/services/bs-version-download/bs-downloader.service";
|
||||
import { useOnUpdate } from "renderer/hooks/use-on-update.hook";
|
||||
import { safeLt } from "shared/helpers/semver.helpers";
|
||||
import { ConfigurationService } from "renderer/services/configuration.service";
|
||||
|
||||
export function VersionViewer() {
|
||||
|
||||
@@ -31,11 +34,41 @@ export function VersionViewer() {
|
||||
const ipcService = useService(IpcService);
|
||||
const bsLauncher = useService(BSLauncherService);
|
||||
const notification = useService(NotificationService);
|
||||
const config = useService(ConfigurationService);
|
||||
|
||||
const { state } = useLocation() as { state: BSVersion };
|
||||
const navigate = useNavigate();
|
||||
const [currentTabIndex, setCurrentTabIndex] = useState(0);
|
||||
|
||||
useOnUpdate(() => {
|
||||
|
||||
checkIsVersionOutaded();
|
||||
|
||||
}, [state]);
|
||||
|
||||
const checkIsVersionOutaded = async () => {
|
||||
|
||||
if(config.get("not-show-bs-version-outdated-notification")){
|
||||
return;
|
||||
}
|
||||
|
||||
const recommended = bsVersionManagerService.getRecommendedVersion();
|
||||
const isOutdated = safeLt(state.BSVersion, recommended?.BSVersion);
|
||||
|
||||
if(!isOutdated){
|
||||
return;
|
||||
}
|
||||
|
||||
const res = await notification.notifyWarning({ title: "notifications.bs-version-oudated.title", desc: "notifications.bs-version-oudated.msg", duration: 9000, actions: [
|
||||
{ id: "0", title: "notifications.bs-version-oudated.actions.do-not-remind" },
|
||||
{ id: "1", title: "notifications.bs-version-oudated.actions.ok", cancel: true }
|
||||
] });
|
||||
|
||||
if(res === "0"){
|
||||
config.set("not-show-bs-version-outdated-notification", true);
|
||||
}
|
||||
}
|
||||
|
||||
const navigateToVersion = (version?: BSVersion) => {
|
||||
if (!version) {
|
||||
return navigate("/available-versions");
|
||||
|
||||
Reference in New Issue
Block a user