diff --git a/src/components/views/VersionsView.tsx b/src/components/views/VersionsView.tsx index 0c2194d..2ba0b5b 100644 --- a/src/components/views/VersionsView.tsx +++ b/src/components/views/VersionsView.tsx @@ -144,7 +144,7 @@ const VersionsView = memo(function VersionsView() { const draggingRef = useRef(false); const menuRef = useRef(null); const [menuDir, setMenuDir] = useState<"down" | "up">("down"); - const ITEM_COUNT = visibleEditions.length + 3; + const ITEM_COUNT = visibleEditions.length; const [visibleRange, setVisibleRange] = useState<{ start: number; end: number; @@ -331,18 +331,16 @@ const VersionsView = memo(function VersionsView() { e.preventDefault(); if (focusIndex < visibleEditions.length) { const edition = visibleEditions[focusIndex]; - const isInstalled = installedVersions.includes(edition.id); - const isCustom = edition.id.startsWith("custom_"); - const maxBtn = isInstalled ? (isCustom ? 6 : 4) : 1; + const isInstalled = installedVersions.includes(edition.instanceId); + const maxBtn = isInstalled ? 1 : 2; setFocusBtn((prev) => (prev <= 0 ? maxBtn : prev - 1)); } } else if (e.key === "ArrowRight") { e.preventDefault(); if (focusIndex < visibleEditions.length) { const edition = visibleEditions[focusIndex]; - const isInstalled = installedVersions.includes(edition.id); - const isCustom = edition.id.startsWith("custom_"); - const maxBtn = isInstalled ? (isCustom ? 6 : 4) : 1; + const isInstalled = installedVersions.includes(edition.instanceId); + const maxBtn = isInstalled ? 1 : 2; setFocusBtn((prev) => (prev >= maxBtn ? 0 : prev + 1)); } } else if (e.key === "Enter") { @@ -352,23 +350,19 @@ const VersionsView = memo(function VersionsView() { const isInstalled = installedVersions.includes(edition.instanceId); const isDownloading = downloadingIds.includes(edition.instanceId); if (focusBtn === 0) { - if (isInstalled) { - playPressSound(); - setOpenMenuId(openMenuId === edition.id ? null : edition.id); - } else { - if (!isDownloading) { - playPressSound(); - toggleInstall(edition.instanceId); - } else { - handleCancelDownload(edition.instanceId); - } - } - } else if (focusBtn === 1 && !isInstalled) { + playPressSound(); + setOpenMenuId(null); + setSelectedProfile(edition.instanceId); + } else if (focusBtn === 2 || (focusBtn === 1 && isInstalled)) { playPressSound(); setOpenMenuId(openMenuId === edition.id ? null : edition.id); - } else if (focusBtn === 2) { + } else if (focusBtn === 1 && !isInstalled) { playPressSound(); - cycleBranch(edition.id); + if (isDownloading) { + handleCancelDownload(edition.instanceId); + } else { + toggleInstall(edition.instanceId); + } } } else if (focusIndex === visibleEditions.length) { playPressSound(); @@ -540,6 +534,10 @@ const VersionsView = memo(function VersionsView() { const isCustom = edition.id.startsWith("custom_"); const isDownloading = downloadingIds.includes(edition.instanceId); const isComingSoon = edition.comingSoon; + const isDownloadFocused = + !isInstalled && isFocused && focusBtn === 1; + const isGearFocused = + isFocused && focusBtn === (isInstalled ? 1 : 2); return (
-
+
{!isInstalled && (
); })} +