Fix missing categories and environments on orgs and following collection (#1667)

This commit is contained in:
Prospector 2024-04-09 11:20:41 -07:00 committed by GitHub
parent 4c2565826f
commit 5f85af76cd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 39 additions and 3 deletions

View File

@ -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)

View File

@ -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"
/>
</div>
@ -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