You've already forked AstralRinth
fix: malformed versions causing versions list page to crash (#6315)
This commit is contained in:
@@ -83,7 +83,6 @@ const props = withDefaults(
|
||||
{
|
||||
page: 1,
|
||||
count: 1,
|
||||
linkFunction: (page: number) => void page,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@@ -327,15 +327,22 @@ const props = withDefaults(
|
||||
)
|
||||
|
||||
function getModpackLoaders(version: VersionWithDisplayUrlEnding): string[] {
|
||||
const loaders = Array.isArray(version.loaders) ? version.loaders : []
|
||||
|
||||
if (props.project.project_type !== 'modpack') {
|
||||
return version.loaders
|
||||
return loaders
|
||||
}
|
||||
|
||||
if (version.mrpack_loaders?.length) {
|
||||
return version.mrpack_loaders
|
||||
const mrpackLoaders = Array.isArray(version.mrpack_loaders) ? version.mrpack_loaders : []
|
||||
if (mrpackLoaders.length) {
|
||||
return mrpackLoaders
|
||||
}
|
||||
|
||||
return version.loaders.filter((loader) => loader !== 'mrpack')
|
||||
return loaders.filter((loader) => loader !== 'mrpack')
|
||||
}
|
||||
|
||||
function getGameVersions(version: VersionWithDisplayUrlEnding): string[] {
|
||||
return Array.isArray(version.game_versions) ? version.game_versions : []
|
||||
}
|
||||
|
||||
function hasNoModLoader(loaders: string[]): boolean {
|
||||
@@ -350,10 +357,12 @@ function hasNoModLoader(loaders: string[]): boolean {
|
||||
const normalizedVersions = computed<DisplayVersion[]>(() =>
|
||||
props.versions.map((version) => {
|
||||
const loaders = getModpackLoaders(version)
|
||||
const gameVersions = getGameVersions(version)
|
||||
const noModLoader = hasNoModLoader(loaders)
|
||||
|
||||
return {
|
||||
...version,
|
||||
game_versions: gameVersions,
|
||||
loaders: noModLoader ? [] : loaders,
|
||||
noModLoader,
|
||||
}
|
||||
|
||||
@@ -109,15 +109,15 @@ const filterOptions = computed(() => {
|
||||
platform: [],
|
||||
}
|
||||
|
||||
const platformSet = new Set()
|
||||
const gameVersionSet = new Set()
|
||||
const channelSet = new Set()
|
||||
const platformSet = new Set<Filter>()
|
||||
const gameVersionSet = new Set<Filter>()
|
||||
const channelSet = new Set<Filter>()
|
||||
|
||||
for (const version of props.versions) {
|
||||
for (const loader of version.loaders) {
|
||||
for (const loader of Array.isArray(version.loaders) ? version.loaders : []) {
|
||||
platformSet.add(loader)
|
||||
}
|
||||
for (const gameVersion of version.game_versions) {
|
||||
for (const gameVersion of Array.isArray(version.game_versions) ? version.game_versions : []) {
|
||||
gameVersionSet.add(gameVersion)
|
||||
}
|
||||
channelSet.add(version.version_type)
|
||||
|
||||
Reference in New Issue
Block a user