Merge branch 'main' into truman/new-server-card-states

This commit is contained in:
tdgao
2026-03-17 20:11:48 -06:00
74 changed files with 2168 additions and 737 deletions
@@ -20,6 +20,14 @@
:date-updated="project.date_modified"
:banner="project.featured_gallery ?? undefined"
:color="project.color ?? undefined"
:environment="
['mod', 'modpack'].includes(projectType)
? {
clientSide: project.client_side?.[0],
serverSide: project.server_side?.[0],
}
: undefined
"
layout="list"
>
<template #actions>
+7 -12
View File
@@ -109,6 +109,10 @@ const instanceHideInstalled = ref(false)
const newlyInstalled = ref<string[]>([])
const isServerInstance = ref(false)
const allInstalledIds = computed(
() => new Set([...newlyInstalled.value, ...(installedProjectIds.value ?? [])]),
)
const PERSISTENT_QUERY_PARAMS = ['i', 'ai']
await initInstanceContext()
@@ -485,17 +489,8 @@ async function refreshSearch() {
link: `/browse/${projectType.value}`,
query: params,
})
const queryString = Object.entries(params)
.flatMap(([key, value]) => {
const values = Array.isArray(value) ? value : [value]
return values
.filter((v): v is string => v != null)
.map((v) => `${encodeURIComponent(key)}=${encodeURIComponent(v)}`)
})
.join('&')
const newUrl = `${route.path}${queryString ? '?' + queryString : ''}`
debugLog('updating URL', newUrl)
window.history.replaceState(window.history.state, '', newUrl)
debugLog('updating URL', params)
router.replace({ path: route.path, query: params })
loading.value = false
debugLog('refreshSearch complete', { version })
@@ -947,7 +942,7 @@ previousFilterState.value = JSON.stringify({
loader.supported_project_types?.includes(projectType),
),
]"
:installed="result.installed || newlyInstalled.includes(result.project_id || '')"
:installed="result.installed || allInstalledIds.has(result.project_id || '')"
@install="
(id) => {
newlyInstalled.push(id)
+18 -6
View File
@@ -781,11 +781,17 @@ provideContentManager({
linkedModpackProject.value
? {
project: linkedModpackProject.value,
projectLink: `/project/${linkedModpackProject.value.slug ?? linkedModpackProject.value.id}`,
projectLink: {
path: `/project/${linkedModpackProject.value.slug ?? linkedModpackProject.value.id}`,
query: { i: props.instance.path },
},
version: linkedModpackVersion.value ?? undefined,
versionLink:
linkedModpackProject.value && linkedModpackVersion.value
? `/project/${linkedModpackProject.value.slug ?? linkedModpackProject.value.id}/version/${linkedModpackVersion.value.id}`
? {
path: `/project/${linkedModpackProject.value.slug ?? linkedModpackProject.value.id}/version/${linkedModpackVersion.value.id}`,
query: { i: props.instance.path },
}
: undefined,
owner: linkedModpackOwner.value
? {
@@ -808,7 +814,7 @@ provideContentManager({
isPackLocked,
isBusy: isInstanceBusy,
isBulkOperating,
getItemId: (item) => item.file_name,
getItemId: (item) => item.file_path ?? item.file_name,
contentTypeLabel: ref(formatMessage(messages.contentTypeProject)),
toggleEnabled: toggleDisableMod,
bulkEnableItems: (items) =>
@@ -832,14 +838,16 @@ provideContentManager({
dismissContentHint,
shareItems: handleShareItems,
mapToTableItem: (item) => ({
id: item.file_name,
id: item.file_path ?? item.file_name,
project: item.project ?? {
id: item.file_name,
slug: null,
title: item.file_name.replace('.disabled', ''),
icon_url: null,
},
projectLink: item.project?.id ? `/project/${item.project.id}` : undefined,
projectLink: item.project?.id
? { path: `/project/${item.project.id}`, query: { i: props.instance.path } }
: undefined,
version: item.version ?? {
id: item.file_name,
version_number: formatMessage(messages.unknownVersion),
@@ -847,7 +855,10 @@ provideContentManager({
},
versionLink:
item.project?.id && item.version?.id
? `/project/${item.project.id}/version/${item.version.id}`
? {
path: `/project/${item.project.id}/version/${item.version.id}`,
query: { i: props.instance.path },
}
: undefined,
owner: item.owner
? {
@@ -857,6 +868,7 @@ provideContentManager({
: undefined,
enabled: item.enabled,
}),
filterPersistKey: props.instance.path,
})
await initProjects()