From c017fd5715e474289f60712109450314de39bdc1 Mon Sep 17 00:00:00 2001 From: Prospector Date: Thu, 4 Apr 2024 22:10:31 -0700 Subject: [PATCH] Fix missing categories and environments on orgs and following collection --- pages/collection/[id].vue | 14 ++++++++++++-- pages/organization/[id].vue | 28 +++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/pages/collection/[id].vue b/pages/collection/[id].vue index cd0fb91aa7..979a20cf63 100644 --- a/pages/collection/[id].vue +++ b/pages/collection/[id].vue @@ -510,8 +510,18 @@ try { updated: auth.value.user.created, }) ;[{ data: projects, refresh: refreshProjects }] = await Promise.all([ - useAsyncData(`user/${auth.value.user.id}/follows`, () => - useBaseFetch(`user/${auth.value.user.id}/follows`) + useAsyncData( + `user/${auth.value.user.id}/follows`, + () => useBaseFetch(`user/${auth.value.user.id}/follows`), + { + transform: (projects) => { + for (const project of projects) { + project.categories = project.categories.concat(project.loaders) + } + + return projects + }, + } ), ]) creator = ref(auth.value.user) diff --git a/pages/organization/[id].vue b/pages/organization/[id].vue index 00aa9657fc..8b59c1c163 100644 --- a/pages/organization/[id].vue +++ b/pages/organization/[id].vue @@ -190,12 +190,14 @@ :follows="project.followers.toString()" :icon-url="project.icon_url" :categories="project.categories" + :client-side="project.client_side" + :server-side="project.server_side" :status=" auth.user && (auth.user.id === user.id || tags.staffRoles.includes(auth.user.role)) ? project.status : null " - :type="project.project_type" + :type="project.project_types[0] ?? 'project'" :color="project.color" /> @@ -271,6 +273,30 @@ const [ transform: (projects) => { for (const project of projects) { project.categories = project.categories.concat(project.loaders) + + if (project.mrpack_loaders) { + project.categories = project.categories.concat(project.mrpack_loaders) + } + + const singleplayer = project.singleplayer && project.singleplayer[0] + const clientAndServer = project.client_and_server && project.client_and_server[0] + const clientOnly = project.client_only && project.client_only[0] + const serverOnly = project.server_only && project.server_only[0] + + // quick and dirty hack to show envs as legacy + if (singleplayer && clientAndServer && !clientOnly && !serverOnly) { + project.client_side = 'required' + project.server_side = 'required' + } else if (singleplayer && clientAndServer && clientOnly && !serverOnly) { + project.client_side = 'required' + project.server_side = 'unsupported' + } else if (singleplayer && clientAndServer && !clientOnly && serverOnly) { + project.client_side = 'unsupported' + project.server_side = 'required' + } else if (singleplayer && clientAndServer && clientOnly && serverOnly) { + project.client_side = 'optional' + project.server_side = 'optional' + } } return projects