You've already forked AstralRinth
forked from didirus/AstralRinth
Proper handling of modpack loaders (#4940)
* fix handling modpack loader * fix order * increase timeout * fix search erroring on non alphanumeric input for searching project id
This commit is contained in:
@@ -44,10 +44,7 @@ async function openEditVersionModal(versionId: string, projectId: string, stageI
|
||||
dependencies: versionData.dependencies ?? [],
|
||||
existing_files: versionData.files ?? [],
|
||||
environment: versionData.environment,
|
||||
}
|
||||
|
||||
if (projectV2.value.project_type === 'modpack' && draftVersionData.loaders.includes('mrpack')) {
|
||||
draftVersionData.loaders.push(...(versionData.mrpack_loaders ?? []))
|
||||
mrpack_loaders: versionData.mrpack_loaders,
|
||||
}
|
||||
|
||||
openCreateVersionModal(draftVersionData, stageId)
|
||||
|
||||
@@ -26,7 +26,8 @@ const options = ref<DropdownOption<string>[]>([])
|
||||
const { labrinth } = injectModrinthClient()
|
||||
|
||||
const search = async (query: string) => {
|
||||
if (!query.trim()) {
|
||||
query = query.trim()
|
||||
if (!query) {
|
||||
searchLoading.value = false
|
||||
return
|
||||
}
|
||||
@@ -49,7 +50,7 @@ const search = async (query: string) => {
|
||||
const resultsByProjectId = await labrinth.projects_v2.search({
|
||||
query: '',
|
||||
limit: 20,
|
||||
facets: [[`project_id:${query}`]],
|
||||
facets: [[`project_id:${query.replace(/[^a-zA-Z0-9]/g, '')}`]], // remove any non-alphanumeric characters
|
||||
})
|
||||
|
||||
options.value = [...resultsByProjectId.hits, ...results.hits].map((hit) => ({
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<div class="flex flex-col gap-3 rounded-2xl border border-solid border-surface-5 p-4">
|
||||
<div class="grid gap-2.5">
|
||||
<span class="font-semibold text-contrast">Project <span class="text-red">*</span></span>
|
||||
<ModSelect v-model="newDependencyProjectId" />
|
||||
<DependencySelect v-model="newDependencyProjectId" />
|
||||
</div>
|
||||
|
||||
<template v-if="newDependencyProjectId">
|
||||
@@ -92,7 +92,7 @@ import {
|
||||
} from '@modrinth/ui'
|
||||
import type { DropdownOption } from '@modrinth/ui/src/components/base/Combobox.vue'
|
||||
|
||||
import ModSelect from '~/components/ui/create-project-version/components/DependencySelect.vue'
|
||||
import DependencySelect from '~/components/ui/create-project-version/components/DependencySelect.vue'
|
||||
import { injectManageVersionContext } from '~/providers/version/manage-version-modal'
|
||||
|
||||
import AddedDependencyRow from '../components/AddedDependencyRow.vue'
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
</span>
|
||||
<Chips
|
||||
v-model="draftVersion.version_type"
|
||||
:items="['release', 'alpha', 'beta']"
|
||||
:items="['release', 'beta', 'alpha']"
|
||||
:never-empty="true"
|
||||
:capitalize="true"
|
||||
/>
|
||||
@@ -61,7 +61,7 @@
|
||||
>
|
||||
<div class="flex flex-wrap gap-2">
|
||||
<template
|
||||
v-for="loader in draftVersion.loaders.map((selectedLoader) =>
|
||||
v-for="loader in draftVersionLoaders.map((selectedLoader) =>
|
||||
loaders.find((loader) => selectedLoader === loader.name),
|
||||
)"
|
||||
>
|
||||
@@ -175,6 +175,12 @@ const generatedState = useGeneratedState()
|
||||
const loaders = computed(() => generatedState.value.loaders)
|
||||
const isModpack = computed(() => projectType.value === 'modpack')
|
||||
|
||||
const draftVersionLoaders = computed(() =>
|
||||
[
|
||||
...new Set([...draftVersion.value.loaders, ...(draftVersion.value.mrpack_loaders ?? [])]),
|
||||
].filter((loader) => loader !== 'mrpack'),
|
||||
)
|
||||
|
||||
const editLoaders = () => {
|
||||
modal.value?.setStage('from-details-loaders')
|
||||
}
|
||||
|
||||
@@ -297,7 +297,7 @@ export function createManageVersionContext(
|
||||
try {
|
||||
if (!version.version_id) throw new Error('Version ID is required to save edits.')
|
||||
|
||||
await labrinth.versions_v3.modifyVersion(version.version_id, {
|
||||
const data: Labrinth.Versions.v3.ModifyVersionRequest = {
|
||||
name: version.name || version.version_number,
|
||||
version_number: version.version_number,
|
||||
changelog: version.changelog,
|
||||
@@ -313,7 +313,9 @@ export function createManageVersionContext(
|
||||
hash: file.hashes.sha1,
|
||||
file_type: file.file_type ?? null,
|
||||
})),
|
||||
})
|
||||
}
|
||||
|
||||
await labrinth.versions_v3.modifyVersion(version.version_id, data)
|
||||
|
||||
if (files.length > 0) {
|
||||
await labrinth.versions_v3.addFilesToVersion(version.version_id, files)
|
||||
|
||||
@@ -190,7 +190,7 @@ export class LabrinthVersionsV3Module extends AbstractModule {
|
||||
version: 3,
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
timeout: 120000,
|
||||
timeout: 60 * 5 * 1000,
|
||||
headers: {
|
||||
'Content-Type': '',
|
||||
},
|
||||
@@ -281,7 +281,7 @@ export class LabrinthVersionsV3Module extends AbstractModule {
|
||||
version: 2,
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
timeout: 120000,
|
||||
timeout: 60 * 5 * 1000,
|
||||
headers: {
|
||||
'Content-Type': '',
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user