mirror of
https://github.com/modrinth/code.git
synced 2026-09-04 05:48:57 +00:00
fix: browse page not respecting instance source via wid param
This commit is contained in:
@@ -90,6 +90,9 @@ const {
|
|||||||
effectiveServerWorldId,
|
effectiveServerWorldId,
|
||||||
serverContextServerData,
|
serverContextServerData,
|
||||||
serverContextWorldName,
|
serverContextWorldName,
|
||||||
|
serverContextWorldGameVersion,
|
||||||
|
serverContextWorldLoader,
|
||||||
|
serverContextWorldLoaderVersion,
|
||||||
serverContentProjectIds,
|
serverContentProjectIds,
|
||||||
queuedServerInstallProjectIds,
|
queuedServerInstallProjectIds,
|
||||||
queuedServerInstallCount,
|
queuedServerInstallCount,
|
||||||
@@ -296,10 +299,10 @@ const serverContextFilters = computed(() => {
|
|||||||
const pt = projectType.value
|
const pt = projectType.value
|
||||||
|
|
||||||
if (pt !== 'modpack') {
|
if (pt !== 'modpack') {
|
||||||
const gameVersion = serverContextServerData.value.mc_version
|
const gameVersion = serverContextWorldGameVersion.value
|
||||||
if (gameVersion) filters.push({ type: 'game_version', option: gameVersion })
|
if (gameVersion) filters.push({ type: 'game_version', option: gameVersion })
|
||||||
|
|
||||||
const platform = serverContextServerData.value.loader?.toLowerCase()
|
const platform = serverContextWorldLoader.value?.toLowerCase().replaceAll('_', '')
|
||||||
if (platform && ['fabric', 'forge', 'quilt', 'neoforge'].includes(platform))
|
if (platform && ['fabric', 'forge', 'quilt', 'neoforge'].includes(platform))
|
||||||
filters.push({ type: 'mod_loader', option: platform })
|
filters.push({ type: 'mod_loader', option: platform })
|
||||||
if (platform && ['paper', 'purpur'].includes(platform))
|
if (platform && ['paper', 'purpur'].includes(platform))
|
||||||
@@ -334,6 +337,14 @@ const combinedProvidedFilters = computed(() =>
|
|||||||
isServerContext.value ? serverContextFilters.value : instanceFilters.value,
|
isServerContext.value ? serverContextFilters.value : instanceFilters.value,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const serverContentProjectType = computed<ProjectType | null>(() => {
|
||||||
|
const loader = serverContextWorldLoader.value?.toLowerCase()
|
||||||
|
if (!loader) return null
|
||||||
|
if (loader === 'paper' || loader === 'purpur') return 'plugin'
|
||||||
|
if (loader === 'vanilla') return 'datapack'
|
||||||
|
return 'mod'
|
||||||
|
})
|
||||||
|
|
||||||
const {
|
const {
|
||||||
serverPings,
|
serverPings,
|
||||||
contextMenuRef,
|
contextMenuRef,
|
||||||
@@ -477,6 +488,21 @@ function resetInstanceContext() {
|
|||||||
breadcrumbs.setContext(null)
|
breadcrumbs.setContext(null)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
watch(
|
||||||
|
[isServerContext, isSetupServerContext, projectType, serverContentProjectType],
|
||||||
|
([serverContext, setupServerContext, currentProjectType, targetProjectType]) => {
|
||||||
|
if (!serverContext || setupServerContext || !targetProjectType) return
|
||||||
|
if (!['mod', 'plugin', 'datapack'].includes(currentProjectType)) return
|
||||||
|
if (currentProjectType === targetProjectType) return
|
||||||
|
|
||||||
|
router.replace({
|
||||||
|
path: `/browse/${targetProjectType}`,
|
||||||
|
query: route.query,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
{ immediate: true },
|
||||||
|
)
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => route.params.projectType as ProjectType,
|
() => route.params.projectType as ProjectType,
|
||||||
async (newType) => {
|
async (newType) => {
|
||||||
@@ -562,9 +588,9 @@ const installContext = computed(() => {
|
|||||||
if (isServerContext.value && serverContextServerData.value) {
|
if (isServerContext.value && serverContextServerData.value) {
|
||||||
return {
|
return {
|
||||||
name: serverContextWorldName.value ?? formatMessage(messages.worldFallbackName),
|
name: serverContextWorldName.value ?? formatMessage(messages.worldFallbackName),
|
||||||
loader: serverContextServerData.value.loader ?? '',
|
loader: serverContextWorldLoader.value ?? '',
|
||||||
loaderVersion: serverContextServerData.value.loader_version ?? '',
|
loaderVersion: serverContextWorldLoaderVersion.value ?? '',
|
||||||
gameVersion: serverContextServerData.value.mc_version ?? '',
|
gameVersion: serverContextWorldGameVersion.value ?? '',
|
||||||
serverId: serverIdQuery.value,
|
serverId: serverIdQuery.value,
|
||||||
upstream: serverContextServerData.value.upstream,
|
upstream: serverContextServerData.value.upstream,
|
||||||
iconSrc: null as string | null,
|
iconSrc: null as string | null,
|
||||||
@@ -639,8 +665,8 @@ function getCurrentSelectedInstallPreferences(projectTypeValue: string) {
|
|||||||
function getServerInstallTargetPreferences(contentType: BrowseInstallContentType) {
|
function getServerInstallTargetPreferences(contentType: BrowseInstallContentType) {
|
||||||
return getTargetInstallPreferences(
|
return getTargetInstallPreferences(
|
||||||
{
|
{
|
||||||
gameVersion: serverContextServerData.value?.mc_version,
|
gameVersion: serverContextWorldGameVersion.value,
|
||||||
loader: serverContextServerData.value?.loader,
|
loader: serverContextWorldLoader.value,
|
||||||
},
|
},
|
||||||
contentType,
|
contentType,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ export interface ServerInstallContentContext {
|
|||||||
effectiveServerWorldId: ComputedRef<string | null>
|
effectiveServerWorldId: ComputedRef<string | null>
|
||||||
serverContextServerData: Ref<Archon.Servers.v0.Server | null>
|
serverContextServerData: Ref<Archon.Servers.v0.Server | null>
|
||||||
serverContextWorldName: ComputedRef<string | null>
|
serverContextWorldName: ComputedRef<string | null>
|
||||||
|
serverContextWorldGameVersion: ComputedRef<string | null>
|
||||||
|
serverContextWorldLoader: ComputedRef<string | null>
|
||||||
|
serverContextWorldLoaderVersion: ComputedRef<string | null>
|
||||||
serverContentProjectIds: Ref<Set<string>>
|
serverContentProjectIds: Ref<Set<string>>
|
||||||
queuedServerInstallProjectIds: ComputedRef<Set<string>>
|
queuedServerInstallProjectIds: ComputedRef<Set<string>>
|
||||||
queuedServerInstallCount: ComputedRef<number>
|
queuedServerInstallCount: ComputedRef<number>
|
||||||
@@ -283,6 +286,21 @@ export function createServerInstallContent(opts: {
|
|||||||
return serverFull.worlds.find((world) => world.is_active) ?? serverFull.worlds[0] ?? null
|
return serverFull.worlds.find((world) => world.is_active) ?? serverFull.worlds[0] ?? null
|
||||||
})
|
})
|
||||||
const serverContextWorldName = computed(() => serverContextWorld.value?.name ?? null)
|
const serverContextWorldName = computed(() => serverContextWorld.value?.name ?? null)
|
||||||
|
const serverContextWorldGameVersion = computed(() => {
|
||||||
|
const worldGameVersion = serverContextWorld.value?.content?.game_version
|
||||||
|
if (worldIdQuery.value) return worldGameVersion ?? null
|
||||||
|
return worldGameVersion ?? serverContextServerData.value?.mc_version ?? null
|
||||||
|
})
|
||||||
|
const serverContextWorldLoader = computed(() => {
|
||||||
|
const worldLoader = serverContextWorld.value?.content?.modloader
|
||||||
|
if (worldIdQuery.value) return worldLoader ?? null
|
||||||
|
return worldLoader ?? serverContextServerData.value?.loader ?? null
|
||||||
|
})
|
||||||
|
const serverContextWorldLoaderVersion = computed(() => {
|
||||||
|
const worldLoaderVersion = serverContextWorld.value?.content?.modloader_version
|
||||||
|
if (worldIdQuery.value) return worldLoaderVersion ?? null
|
||||||
|
return worldLoaderVersion ?? serverContextServerData.value?.loader_version ?? null
|
||||||
|
})
|
||||||
const serverBackUrl = computed(() => {
|
const serverBackUrl = computed(() => {
|
||||||
const sid = serverIdQuery.value
|
const sid = serverIdQuery.value
|
||||||
if (!sid) return '/hosting/manage'
|
if (!sid) return '/hosting/manage'
|
||||||
@@ -688,6 +706,9 @@ export function createServerInstallContent(opts: {
|
|||||||
effectiveServerWorldId,
|
effectiveServerWorldId,
|
||||||
serverContextServerData,
|
serverContextServerData,
|
||||||
serverContextWorldName,
|
serverContextWorldName,
|
||||||
|
serverContextWorldGameVersion,
|
||||||
|
serverContextWorldLoader,
|
||||||
|
serverContextWorldLoaderVersion,
|
||||||
serverContentProjectIds,
|
serverContentProjectIds,
|
||||||
queuedServerInstallProjectIds,
|
queuedServerInstallProjectIds,
|
||||||
queuedServerInstallCount,
|
queuedServerInstallCount,
|
||||||
|
|||||||
+7
-7
@@ -129,13 +129,6 @@ const { canSetup, permissionDeniedMessage } = useServerPermissions()
|
|||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const queryClient = useQueryClient()
|
const queryClient = useQueryClient()
|
||||||
|
|
||||||
const type = computed(() => {
|
|
||||||
const loader = server.value?.loader?.toLowerCase()
|
|
||||||
if (loader === 'paper' || loader === 'purpur') return 'plugin'
|
|
||||||
if (loader === 'vanilla') return 'datapack'
|
|
||||||
return 'mod'
|
|
||||||
})
|
|
||||||
|
|
||||||
const queryKey = computed(() => ['content', 'list', 'v1', serverId, worldId.value])
|
const queryKey = computed(() => ['content', 'list', 'v1', serverId, worldId.value])
|
||||||
const modpackContentQueryKey = computed(() => [
|
const modpackContentQueryKey = computed(() => [
|
||||||
'content',
|
'content',
|
||||||
@@ -159,6 +152,13 @@ const contentQuery = useQuery({
|
|||||||
staleTime: 0,
|
staleTime: 0,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const type = computed(() => {
|
||||||
|
const loader = (contentQuery.data.value?.modloader ?? server.value?.loader)?.toLowerCase()
|
||||||
|
if (loader === 'paper' || loader === 'purpur') return 'plugin'
|
||||||
|
if (loader === 'vanilla') return 'datapack'
|
||||||
|
return 'mod'
|
||||||
|
})
|
||||||
|
|
||||||
const isModpackContentModalOpen = ref(false)
|
const isModpackContentModalOpen = ref(false)
|
||||||
const modpackContentQuery = useQuery({
|
const modpackContentQuery = useQuery({
|
||||||
queryKey: modpackContentQueryKey,
|
queryKey: modpackContentQueryKey,
|
||||||
|
|||||||
Reference in New Issue
Block a user