fix: multiple compatible downloads showing as radio button (#7050)

This commit is contained in:
Truman Gao
2026-08-07 16:04:04 +00:00
committed by GitHub
parent 3fa6905006
commit 6ed044a54b
@@ -82,10 +82,8 @@
<div <div
v-if="selectedVersion && downloadDataLoaded" v-if="selectedVersion && downloadDataLoaded"
:role="compatibleVersions.length > 1 ? 'radiogroup' : undefined" :role="showVersionSelector ? 'radiogroup' : undefined"
:aria-label=" :aria-label="showVersionSelector ? formatMessage(messages.compatibleVersionTitle) : undefined"
compatibleVersions.length > 1 ? formatMessage(messages.compatibleVersionTitle) : undefined
"
class="flex flex-col gap-2.5" class="flex flex-col gap-2.5"
> >
<h3 <h3
@@ -102,26 +100,12 @@
:download-reason="downloadReason" :download-reason="downloadReason"
:current-game-version="currentGameVersion" :current-game-version="currentGameVersion"
:current-platform="currentPlatform" :current-platform="currentPlatform"
:selectable="compatibleVersions.length > 1" :selectable="showVersionSelector"
:selected="compatibleVersion.id === selectedVersion.id" :selected="compatibleVersion.id === selectedVersion.id"
:show-download=" :show-download="!showVersionSelector || compatibleVersion.id === selectedVersion.id"
compatibleVersions.length === 1 || compatibleVersion.id === selectedVersion.id :color="isPrimaryDownloadVersion(compatibleVersion) ? 'brand' : 'standard'"
" :type="isPrimaryDownloadVersion(compatibleVersion) ? 'standard' : 'transparent'"
:color=" :circular="!isPrimaryDownloadVersion(compatibleVersion)"
compatibleVersion.id === selectedVersion.id &&
compatibleVersions.length === 1 &&
!hasAdditionalDownloads
? 'brand'
: 'standard'
"
:type="
compatibleVersion.id === selectedVersion.id &&
compatibleVersions.length === 1 &&
!hasAdditionalDownloads
? 'standard'
: 'transparent'
"
:circular="hasAdditionalDownloads || compatibleVersions.length > 1"
@select="selectCompatibleVersion(compatibleVersion)" @select="selectCompatibleVersion(compatibleVersion)"
@download="emit('download')" @download="emit('download')"
/> />
@@ -494,6 +478,10 @@ const hasAdditionalDownloads = computed(() => {
return hrefs.size > 1 return hrefs.size > 1
}) })
const showVersionSelector = computed(
() => hasAdditionalDownloads.value && compatibleVersions.value.length > 1,
)
watch( watch(
[currentGameVersion, currentPlatform, selectedVersion, selectedPrimaryFile], [currentGameVersion, currentPlatform, selectedVersion, selectedPrimaryFile],
() => { () => {
@@ -539,6 +527,10 @@ function selectCompatibleVersion(version: Labrinth.Versions.v3.Version) {
userSelectedCompatibleVersionId.value = version.id userSelectedCompatibleVersionId.value = version.id
} }
function isPrimaryDownloadVersion(version: Labrinth.Versions.v3.Version) {
return !hasAdditionalDownloads.value && version.id === defaultSelectedVersion.value?.id
}
function latestVersionByType(type: Labrinth.Versions.v3.VersionChannel) { function latestVersionByType(type: Labrinth.Versions.v3.VersionChannel) {
return filteredVersions.value return filteredVersions.value
.filter((version) => version.version_type === type) .filter((version) => version.version_type === type)