Skip to content

Commit 1e9e13a

Browse files
authored
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
1 parent 67835b0 commit 1e9e13a

File tree

6 files changed

+20
-14
lines changed

6 files changed

+20
-14
lines changed

apps/frontend/src/components/ui/create-project-version/CreateProjectVersionModal.vue

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,7 @@ async function openEditVersionModal(versionId: string, projectId: string, stageI
4444
dependencies: versionData.dependencies ?? [],
4545
existing_files: versionData.files ?? [],
4646
environment: versionData.environment,
47-
}
48-
49-
if (projectV2.value.project_type === 'modpack' && draftVersionData.loaders.includes('mrpack')) {
50-
draftVersionData.loaders.push(...(versionData.mrpack_loaders ?? []))
47+
mrpack_loaders: versionData.mrpack_loaders,
5148
}
5249
5350
openCreateVersionModal(draftVersionData, stageId)

apps/frontend/src/components/ui/create-project-version/components/DependencySelect.vue

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ const options = ref<DropdownOption<string>[]>([])
2626
const { labrinth } = injectModrinthClient()
2727
2828
const search = async (query: string) => {
29-
if (!query.trim()) {
29+
query = query.trim()
30+
if (!query) {
3031
searchLoading.value = false
3132
return
3233
}
@@ -49,7 +50,7 @@ const search = async (query: string) => {
4950
const resultsByProjectId = await labrinth.projects_v2.search({
5051
query: '',
5152
limit: 20,
52-
facets: [[`project_id:${query}`]],
53+
facets: [[`project_id:${query.replace(/[^a-zA-Z0-9]/g, '')}`]], // remove any non-alphanumeric characters
5354
})
5455
5556
options.value = [...resultsByProjectId.hits, ...results.hits].map((hit) => ({

apps/frontend/src/components/ui/create-project-version/stages/AddDependenciesStage.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<div class="flex flex-col gap-3 rounded-2xl border border-solid border-surface-5 p-4">
66
<div class="grid gap-2.5">
77
<span class="font-semibold text-contrast">Project <span class="text-red">*</span></span>
8-
<ModSelect v-model="newDependencyProjectId" />
8+
<DependencySelect v-model="newDependencyProjectId" />
99
</div>
1010

1111
<template v-if="newDependencyProjectId">
@@ -92,7 +92,7 @@ import {
9292
} from '@modrinth/ui'
9393
import type { DropdownOption } from '@modrinth/ui/src/components/base/Combobox.vue'
9494
95-
import ModSelect from '~/components/ui/create-project-version/components/DependencySelect.vue'
95+
import DependencySelect from '~/components/ui/create-project-version/components/DependencySelect.vue'
9696
import { injectManageVersionContext } from '~/providers/version/manage-version-modal'
9797
9898
import AddedDependencyRow from '../components/AddedDependencyRow.vue'

apps/frontend/src/components/ui/create-project-version/stages/AddDetailsStage.vue

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
</span>
77
<Chips
88
v-model="draftVersion.version_type"
9-
:items="['release', 'alpha', 'beta']"
9+
:items="['release', 'beta', 'alpha']"
1010
:never-empty="true"
1111
:capitalize="true"
1212
/>
@@ -61,7 +61,7 @@
6161
>
6262
<div class="flex flex-wrap gap-2">
6363
<template
64-
v-for="loader in draftVersion.loaders.map((selectedLoader) =>
64+
v-for="loader in draftVersionLoaders.map((selectedLoader) =>
6565
loaders.find((loader) => selectedLoader === loader.name),
6666
)"
6767
>
@@ -175,6 +175,12 @@ const generatedState = useGeneratedState()
175175
const loaders = computed(() => generatedState.value.loaders)
176176
const isModpack = computed(() => projectType.value === 'modpack')
177177
178+
const draftVersionLoaders = computed(() =>
179+
[
180+
...new Set([...draftVersion.value.loaders, ...(draftVersion.value.mrpack_loaders ?? [])]),
181+
].filter((loader) => loader !== 'mrpack'),
182+
)
183+
178184
const editLoaders = () => {
179185
modal.value?.setStage('from-details-loaders')
180186
}

apps/frontend/src/providers/version/manage-version-modal.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ export function createManageVersionContext(
297297
try {
298298
if (!version.version_id) throw new Error('Version ID is required to save edits.')
299299

300-
await labrinth.versions_v3.modifyVersion(version.version_id, {
300+
const data: Labrinth.Versions.v3.ModifyVersionRequest = {
301301
name: version.name || version.version_number,
302302
version_number: version.version_number,
303303
changelog: version.changelog,
@@ -313,7 +313,9 @@ export function createManageVersionContext(
313313
hash: file.hashes.sha1,
314314
file_type: file.file_type ?? null,
315315
})),
316-
})
316+
}
317+
318+
await labrinth.versions_v3.modifyVersion(version.version_id, data)
317319

318320
if (files.length > 0) {
319321
await labrinth.versions_v3.addFilesToVersion(version.version_id, files)

packages/api-client/src/modules/labrinth/versions/v3.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ export class LabrinthVersionsV3Module extends AbstractModule {
190190
version: 3,
191191
method: 'POST',
192192
body: formData,
193-
timeout: 120000,
193+
timeout: 60 * 5 * 1000,
194194
headers: {
195195
'Content-Type': '',
196196
},
@@ -281,7 +281,7 @@ export class LabrinthVersionsV3Module extends AbstractModule {
281281
version: 2,
282282
method: 'POST',
283283
body: formData,
284-
timeout: 120000,
284+
timeout: 60 * 5 * 1000,
285285
headers: {
286286
'Content-Type': '',
287287
},

0 commit comments

Comments
 (0)