install version matching filters if possible (#6932)

This commit is contained in:
Prospector
2026-07-29 13:26:39 -07:00
committed by GitHub
parent 06262e7bb1
commit a0320f425e
2 changed files with 47 additions and 3 deletions
+25 -1
View File
@@ -25,6 +25,7 @@ import {
preferencesDiffer,
provideBrowseManager,
requestInstall,
resolveInstallPlan,
stripServerRuntimeInstallFilters,
stripServerRuntimeInstallOverrides,
useBrowseSearch,
@@ -798,6 +799,27 @@ async function chooseInstanceInstallVersion(
return { versionId: selectedVersion.id }
}
async function chooseFilterMatchingInstallVersion(
project: Labrinth.Search.v3.ResultSearchProject,
projectTypeValue: string,
) {
const plan = await resolveInstallPlan({
project: {
project_id: project.project_id,
title: project.title,
icon_url: project.icon_url,
},
contentType: projectTypeValue as BrowseInstallContentType,
selectedFilters: searchState.currentFilters.value,
providedFilters: combinedProvidedFilters.value,
overriddenProvidedFilterTypes: searchState.overriddenProvidedFilterTypes.value,
targetPreferences: {},
getProjectVersions: getInstallProjectVersions,
})
return { versionId: plan.versionId }
}
function getCardActions(
result: Labrinth.Search.v3.ResultSearchProject,
currentProjectType: string,
@@ -927,7 +949,9 @@ function getCardActions(
try {
const selectedInstall = instance.value
? await chooseInstanceInstallVersion(projectResult, currentProjectType)
: { versionId: null as string | null }
: isModpack
? await chooseFilterMatchingInstallVersion(projectResult, currentProjectType)
: { versionId: null as string | null }
if (selectedInstall === null) {
setProjectInstalling(projectResult.project_id, false)
return