From 2b420fd9efe172fa58a54584e46aa1b9c696670a Mon Sep 17 00:00:00 2001 From: tdgao Date: Thu, 18 Dec 2025 18:03:54 -0800 Subject: [PATCH 1/4] add search on all project types except mod packs --- .../ui/create-project-version/components/ModSelect.vue | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue b/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue index 8041dd8f8f..aed4b59f83 100644 --- a/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue +++ b/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue @@ -34,7 +34,15 @@ const search = async (query: string) => { const results = await labrinth.projects_v2.search({ query: query, limit: 20, - facets: [['project_type:mod']], + facets: [ + [ + 'project_type:mod', + 'project_type:plugin', + 'project_type:shader ', + 'project_type:resourcepack', + 'project_type:datapack', + ], + ], }) options.value = results.hits.map((hit) => ({ From 2106827ce03073a698cc747819ca01c602ec257f Mon Sep 17 00:00:00 2001 From: tdgao Date: Thu, 18 Dec 2025 18:48:10 -0800 Subject: [PATCH 2/4] add search by ID --- .../ui/create-project-version/components/ModSelect.vue | 9 ++++++++- packages/ui/src/components/base/Combobox.vue | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue b/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue index aed4b59f83..d37d06b24b 100644 --- a/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue +++ b/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue @@ -7,6 +7,7 @@ search-placeholder="Search by name, slug, or paste ID..." :no-options-message="searchLoading ? 'Loading...' : 'No results found'" @search-input="(query) => handleSearch(query)" + :disableSearchFilter="true" /> @@ -45,7 +46,13 @@ const search = async (query: string) => { ], }) - options.value = results.hits.map((hit) => ({ + const resultsByProjectId = await labrinth.projects_v2.search({ + query: '', + limit: 20, + facets: [[`project_id:${query}`]], + }) + + options.value = [...resultsByProjectId.hits, ...results.hits].map((hit) => ({ label: hit.title, value: hit.project_id, icon: defineAsyncComponent(() => diff --git a/packages/ui/src/components/base/Combobox.vue b/packages/ui/src/components/base/Combobox.vue index 4c2180b680..7c156f0a88 100644 --- a/packages/ui/src/components/base/Combobox.vue +++ b/packages/ui/src/components/base/Combobox.vue @@ -170,6 +170,7 @@ const props = withDefaults( triggerClass?: string forceDirection?: 'up' | 'down' noOptionsMessage?: string + disableSearchFilter?: boolean }>(), { placeholder: 'Select an option', @@ -244,7 +245,7 @@ const optionsWithKeys = computed(() => { }) const filteredOptions = computed(() => { - if (!searchQuery.value || !props.searchable) { + if (!searchQuery.value || !props.searchable || props.disableSearchFilter) { return optionsWithKeys.value } From d94fc8e72be4463a948d5349eb44e0447ecbf5c2 Mon Sep 17 00:00:00 2001 From: tdgao Date: Thu, 18 Dec 2025 18:48:31 -0800 Subject: [PATCH 3/4] fix placeholder --- .../ui/create-project-version/components/ModSelect.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue b/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue index d37d06b24b..cd50a266ff 100644 --- a/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue +++ b/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue @@ -4,7 +4,7 @@ placeholder="Select project" :options="options" :searchable="true" - search-placeholder="Search by name, slug, or paste ID..." + search-placeholder="Search by name or paste ID..." :no-options-message="searchLoading ? 'Loading...' : 'No results found'" @search-input="(query) => handleSearch(query)" :disableSearchFilter="true" From be82daf69bb4aa53e628b5e8f2094c84edaffaf7 Mon Sep 17 00:00:00 2001 From: tdgao Date: Thu, 18 Dec 2025 18:49:43 -0800 Subject: [PATCH 4/4] rename to dependency select --- .../components/{ModSelect.vue => DependencySelect.vue} | 0 .../ui/create-project-version/stages/AddDependenciesStage.vue | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename apps/frontend/src/components/ui/create-project-version/components/{ModSelect.vue => DependencySelect.vue} (100%) diff --git a/apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue b/apps/frontend/src/components/ui/create-project-version/components/DependencySelect.vue similarity index 100% rename from apps/frontend/src/components/ui/create-project-version/components/ModSelect.vue rename to apps/frontend/src/components/ui/create-project-version/components/DependencySelect.vue diff --git a/apps/frontend/src/components/ui/create-project-version/stages/AddDependenciesStage.vue b/apps/frontend/src/components/ui/create-project-version/stages/AddDependenciesStage.vue index 68305141a6..2a44b4497b 100644 --- a/apps/frontend/src/components/ui/create-project-version/stages/AddDependenciesStage.vue +++ b/apps/frontend/src/components/ui/create-project-version/stages/AddDependenciesStage.vue @@ -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/ModSelect.vue' +import ModSelect from '~/components/ui/create-project-version/components/DependencySelect.vue' import { injectManageVersionContext } from '~/providers/version/manage-version-modal' import AddedDependencyRow from '../components/AddedDependencyRow.vue'