diff --git a/src/renderer/pages/version-viewer.component.tsx b/src/renderer/pages/version-viewer.component.tsx
index b2b03ecd..70b50922 100644
--- a/src/renderer/pages/version-viewer.component.tsx
+++ b/src/renderer/pages/version-viewer.component.tsx
@@ -1,6 +1,6 @@
import { BSVersion } from "shared/bs-version.interface";
import { useState } from "react";
-import { useLocation, useNavigate } from "react-router-dom";
+import { Navigate, useLocation, useNavigate } from "react-router-dom";
import { TabNavBar } from "renderer/components/shared/tab-nav-bar.component";
import { BsmDropdownButton } from "renderer/components/shared/bsm-dropdown-button.component";
import { BsmImage } from "renderer/components/shared/bsm-image.component";
@@ -24,6 +24,7 @@ import { BsDownloaderService } from "renderer/services/bs-version-download/bs-do
import { useOnUpdate } from "renderer/hooks/use-on-update.hook";
import { safeLt } from "shared/helpers/semver.helpers";
import { ConfigurationService } from "renderer/services/configuration.service";
+import { logRenderError } from "renderer";
export function VersionViewer() {
@@ -36,7 +37,7 @@ export function VersionViewer() {
const notification = useService(NotificationService);
const config = useService(ConfigurationService);
- const { state } = useLocation() as { state: BSVersion };
+ const { state, pathname: url } = useLocation() as { state: BSVersion; pathname: string };
const navigate = useNavigate();
const [currentTabIndex, setCurrentTabIndex] = useState(0);
@@ -132,6 +133,13 @@ export function VersionViewer() {
});
}
+ // If state/version is not properly set, or becomes null for some reason
+ // redirect user to the available-versions page
+ if (!state) {
+ logRenderError(`Missing state/version for "${url}"`);
+ return ;
+ }
+
return (
<>