add loading states for creators + server details (#7033)

* add loading states for creators + server details

* prepr
This commit is contained in:
Prospector
2026-08-07 13:20:31 -07:00
committed by GitHub
parent 9181c155e0
commit b0394de164
4 changed files with 92 additions and 36 deletions
+16 -3
View File
@@ -432,7 +432,8 @@
<div class="normal-page__sidebar">
<ProjectSidebarServerInfo
v-if="isServerProject && serverDataLoaded"
v-if="isServerProject"
:loading="!serverDataLoaded"
:project-v3="projectV3"
:tags="tags"
:required-content="serverRequiredContent"
@@ -462,6 +463,7 @@
<ProjectSidebarCreators
:organization="organization"
:members="members"
:loading="creatorsLoading"
:org-link="(slug) => `/organization/${slug}`"
:user-link="(username) => `/user/${username}`"
class="card flex-card"
@@ -1023,7 +1025,11 @@ watch(serverModpackVersionId, (versionId) => {
})
// Members
const { data: allMembersRaw, error: _membersError } = useQuery({
const {
data: allMembersRaw,
error: _membersError,
isPending: membersPending,
} = useQuery({
queryKey: computed(() => ['project', projectId.value, 'members']),
queryFn: () => client.labrinth.projects_v3.getMembers(projectId.value),
staleTime: STALE_TIME,
@@ -1074,7 +1080,7 @@ const {
// Organization
// Only fetch organization if project belongs to one
const { data: organizationRaw } = useQuery({
const { data: organizationRaw, isPending: organizationPending } = useQuery({
queryKey: computed(() => ['project', projectId.value, 'organization']),
queryFn: () => client.labrinth.projects_v3.getOrganization(projectId.value),
staleTime: STALE_TIME,
@@ -1085,6 +1091,13 @@ const { data: organizationRaw } = useQuery({
// Return null when the project no longer belongs to an organization.
const organization = computed(() => (projectRaw.value?.organization ? organizationRaw.value : null))
const creatorsLoading = computed(
() =>
!projectRaw.value ||
membersPending.value ||
(!!projectRaw.value.organization && organizationPending.value),
)
const { data: thread } = useQuery({
queryKey: computed(() => ['thread', projectRaw.value?.thread_id]),
queryFn: () => client.labrinth.threads_v3.getThread(projectRaw.value.thread_id),