mirror of
https://github.com/modrinth/code.git
synced 2026-09-05 06:19:11 +00:00
fix: download modal no compatible empty state (#6680)
This commit is contained in:
@@ -126,6 +126,9 @@
|
|||||||
@download="emit('download')"
|
@download="emit('download')"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-else-if="showNoCompatibleVersions" class="pl-1 text-base text-primary" role="status">
|
||||||
|
{{ noCompatibleVersionsDescription }}
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
@@ -174,6 +177,7 @@ const props = withDefaults(
|
|||||||
versions?: Labrinth.Versions.v3.Version[]
|
versions?: Labrinth.Versions.v3.Version[]
|
||||||
dependencyDownloadFiles?: DownloadableFile[]
|
dependencyDownloadFiles?: DownloadableFile[]
|
||||||
downloadDataLoaded?: boolean
|
downloadDataLoaded?: boolean
|
||||||
|
versionsLoaded?: boolean
|
||||||
downloadReason?: CdnDownloadReason
|
downloadReason?: CdnDownloadReason
|
||||||
initialGameVersion?: string | null
|
initialGameVersion?: string | null
|
||||||
initialPlatform?: string | null
|
initialPlatform?: string | null
|
||||||
@@ -185,6 +189,7 @@ const props = withDefaults(
|
|||||||
versions: () => [],
|
versions: () => [],
|
||||||
dependencyDownloadFiles: () => [],
|
dependencyDownloadFiles: () => [],
|
||||||
downloadDataLoaded: false,
|
downloadDataLoaded: false,
|
||||||
|
versionsLoaded: false,
|
||||||
downloadReason: 'standalone',
|
downloadReason: 'standalone',
|
||||||
initialGameVersion: null,
|
initialGameVersion: null,
|
||||||
initialPlatform: null,
|
initialPlatform: null,
|
||||||
@@ -409,6 +414,25 @@ const compatibleVersions = computed<Labrinth.Versions.v3.Version[]>(() => {
|
|||||||
return [defaultSelectedVersion.value, ...suggestedPreReleaseVersions.value]
|
return [defaultSelectedVersion.value, ...suggestedPreReleaseVersions.value]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const showNoCompatibleVersions = computed(() => {
|
||||||
|
return (
|
||||||
|
props.versionsLoaded &&
|
||||||
|
compatibleVersions.value.length === 0 &&
|
||||||
|
!!currentGameVersion.value &&
|
||||||
|
!!currentPlatform.value
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
const noCompatibleVersionsDescription = computed(() => {
|
||||||
|
const gameVersion = currentGameVersion.value
|
||||||
|
if (!gameVersion || !currentPlatform.value) return ''
|
||||||
|
|
||||||
|
return formatMessage(messages.noVersionsAvailable, {
|
||||||
|
gameVersion,
|
||||||
|
platform: currentPlatformText.value,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
const selectedVersion = computed<Labrinth.Versions.v3.Version | null>(() => {
|
const selectedVersion = computed<Labrinth.Versions.v3.Version | null>(() => {
|
||||||
return (
|
return (
|
||||||
compatibleVersions.value.find(
|
compatibleVersions.value.find(
|
||||||
@@ -636,6 +660,10 @@ const messages = defineMessages({
|
|||||||
id: 'project.download.no-game-versions-found',
|
id: 'project.download.no-game-versions-found',
|
||||||
defaultMessage: 'No game versions found',
|
defaultMessage: 'No game versions found',
|
||||||
},
|
},
|
||||||
|
noVersionsAvailable: {
|
||||||
|
id: 'project.download.no-versions-available',
|
||||||
|
defaultMessage: 'No versions available for {gameVersion} and {platform}.',
|
||||||
|
},
|
||||||
platformUnsupportedTooltip: {
|
platformUnsupportedTooltip: {
|
||||||
id: 'project.download.platform-unsupported-tooltip',
|
id: 'project.download.platform-unsupported-tooltip',
|
||||||
defaultMessage: '{title} does not support {platform} for {gameVersion}',
|
defaultMessage: '{title} does not support {platform} for {gameVersion}',
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
:versions="versions"
|
:versions="versions"
|
||||||
:dependency-download-files="dependencyDownloadFiles"
|
:dependency-download-files="dependencyDownloadFiles"
|
||||||
:download-data-loaded="downloadRowsLoaded"
|
:download-data-loaded="downloadRowsLoaded"
|
||||||
|
:versions-loaded="versionsLoaded"
|
||||||
:download-reason="downloadReason"
|
:download-reason="downloadReason"
|
||||||
:initial-game-version="initialGameVersion"
|
:initial-game-version="initialGameVersion"
|
||||||
:initial-platform="initialPlatform"
|
:initial-platform="initialPlatform"
|
||||||
@@ -255,6 +256,9 @@ const { data: versionsV3, isFetching: versionsV3Loading } = useQuery({
|
|||||||
const versions = computed<Labrinth.Versions.v3.Version[]>(() =>
|
const versions = computed<Labrinth.Versions.v3.Version[]>(() =>
|
||||||
normalizeVersionsForDownload(versionsV3.value ?? []),
|
normalizeVersionsForDownload(versionsV3.value ?? []),
|
||||||
)
|
)
|
||||||
|
const versionsLoaded = computed(
|
||||||
|
() => versionsEnabled.value && !versionsV3Loading.value && Array.isArray(versionsV3.value),
|
||||||
|
)
|
||||||
|
|
||||||
const initialGameVersion = computed(() => {
|
const initialGameVersion = computed(() => {
|
||||||
const version = route.query.version
|
const version = route.query.version
|
||||||
|
|||||||
@@ -3362,6 +3362,9 @@
|
|||||||
"project.download.no-game-versions-found": {
|
"project.download.no-game-versions-found": {
|
||||||
"message": "No game versions found"
|
"message": "No game versions found"
|
||||||
},
|
},
|
||||||
|
"project.download.no-versions-available": {
|
||||||
|
"message": "No versions available for {gameVersion} and {platform}."
|
||||||
|
},
|
||||||
"project.download.platform-unsupported-tooltip": {
|
"project.download.platform-unsupported-tooltip": {
|
||||||
"message": "{title} does not support {platform} for {gameVersion}"
|
"message": "{title} does not support {platform} for {gameVersion}"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user