diff --git a/src/components/change-version-dialog.tsx b/src/components/change-version-dialog.tsx
index 3ef049a..f633a93 100644
--- a/src/components/change-version-dialog.tsx
+++ b/src/components/change-version-dialog.tsx
@@ -164,13 +164,60 @@ export function ChangeVersionDialog({
- {!releaseTypes.stable || !releaseTypes.nightly ? (
+ {!releaseTypes.stable && !releaseTypes.nightly ? (
- Only {profile.release_type} releases are available for{" "}
+ No releases are available for{" "}
{getBrowserDisplayName(profile.browser)}.
+ ) : !releaseTypes.stable || !releaseTypes.nightly ? (
+
+
+
+ Only {profile.release_type} releases are available for{" "}
+ {getBrowserDisplayName(profile.browser)}.
+
+
+
+
+ {isLoadingReleaseTypes ? (
+
+ Loading release types...
+
+ ) : (
+
+ {selectedReleaseType &&
+ selectedReleaseType !== profile.release_type &&
+ selectedVersion &&
+ !isVersionDownloaded(selectedVersion) && (
+
+
+ You must download{" "}
+ {getBrowserDisplayName(profile.browser)}{" "}
+ {selectedVersion} before switching to this release
+ type. Use the download button above to get the
+ latest version.
+
+
+ )}
+
+
{
+ void handleDownload();
+ }}
+ placeholder="Select release type..."
+ downloadedVersions={downloadedVersions}
+ />
+
+ )}
+
+
) : (
@@ -179,18 +226,35 @@ export function ChangeVersionDialog({
Loading release types...
) : (
- {
- void handleDownload();
- }}
- placeholder="Select release type..."
- downloadedVersions={downloadedVersions}
- />
+
+ {selectedReleaseType &&
+ selectedReleaseType !== profile.release_type &&
+ selectedVersion &&
+ !isVersionDownloaded(selectedVersion) && (
+
+
+ You must download{" "}
+ {getBrowserDisplayName(profile.browser)}{" "}
+ {selectedVersion} before switching to this release
+ type. Use the download button above to get the latest
+ version.
+
+
+ )}
+
+
{
+ void handleDownload();
+ }}
+ placeholder="Select release type..."
+ downloadedVersions={downloadedVersions}
+ />
+
)}
)}
diff --git a/src/components/create-profile-dialog.tsx b/src/components/create-profile-dialog.tsx
index f3e2219..da27c15 100644
--- a/src/components/create-profile-dialog.tsx
+++ b/src/components/create-profile-dialog.tsx
@@ -93,6 +93,7 @@ export function CreateProfileDialog({
isDownloading,
downloadedVersions,
loadDownloadedVersions,
+ isVersionDownloaded,
} = useBrowserDownload();
const {
@@ -280,6 +281,7 @@ export function CreateProfileDialog({
selectedBrowser &&
selectedReleaseType &&
selectedVersion &&
+ isVersionDownloaded(selectedVersion) &&
(!proxyEnabled || isProxyDisabled || (proxyHost && proxyPort)) &&
!nameError;
@@ -370,37 +372,48 @@ export function CreateProfileDialog({
- {selectedBrowser &&
- (!releaseTypes.stable || !releaseTypes.nightly) ? (
-
-
- Only {(releaseTypes.stable && "Stable") ?? "Nightly"} releases
- are available for {getBrowserDisplayName(selectedBrowser)}.
-
-
- ) : (
+ {selectedBrowser ? (
{isLoadingReleaseTypes ? (
Loading release types...
+ ) : Object.keys(releaseTypes).length === 0 ? (
+
+
+ No releases are available for{" "}
+ {getBrowserDisplayName(selectedBrowser)}.
+
+
) : (
-
{
- void handleDownload();
- }}
- placeholder="Select release type..."
- downloadedVersions={downloadedVersions}
- />
+
+ {(!releaseTypes.stable || !releaseTypes.nightly) && (
+
+
+ Only {(releaseTypes.stable && "Stable") ?? "Nightly"}{" "}
+ releases are available for{" "}
+ {getBrowserDisplayName(selectedBrowser)}.
+
+
+ )}
+
+
{
+ void handleDownload();
+ }}
+ placeholder="Select release type..."
+ downloadedVersions={downloadedVersions}
+ />
+
)}
- )}
+ ) : null}
{/* Proxy Settings */}