diff --git a/dashboard/src/routes/Dash/Group/Group.svelte b/dashboard/src/routes/Dash/Group/Group.svelte index 7162d34c..0eca1bff 100644 --- a/dashboard/src/routes/Dash/Group/Group.svelte +++ b/dashboard/src/routes/Dash/Group/Group.svelte @@ -50,15 +50,13 @@ let groupsStore: Writable = writable([]) $: members = setContext>("members", membersStore) $: groups = setContext>("groups", groupsStore) - $: group = $groups.filter(g => g.id === $params.id)[0] || {} + let group: Group|null = null let title = isPublic ? "group" : "group (dash)"; async function fetchGroup() { try { - const res = await api().groups($params.id).get({auth: !isPublic}); - $groups = [res] - group = $groups.filter(g => g.id === $params.id)[0]; + group = await api().groups($params.id).get({ auth: !isPublic }) if (!isPublic && !group.privacy) { notOwnSystem = true; throw new Error("Group is not from own system."); @@ -85,7 +83,7 @@ members.set(groupMembers); } else { const systemGroups: Group[] = await api().systems("@me").groups.get({ auth: true, query: { with_members: true } }); - group.members = systemGroups.filter((g: Group) => g.id === $params.id).map((m: Member) => m.uuid); + group.members = systemGroups.find((g: Group) => g.uuid === group.uuid).members groups.set(systemGroups); const systemMembers = await api().systems("@me").members.get({ auth: true }); diff --git a/dashboard/src/routes/Dash/Member/Member.svelte b/dashboard/src/routes/Dash/Member/Member.svelte index 2b6328a3..c327d5c0 100644 --- a/dashboard/src/routes/Dash/Member/Member.svelte +++ b/dashboard/src/routes/Dash/Member/Member.svelte @@ -50,7 +50,7 @@ let groupsStore: Writable = writable([]) $: members = setContext>("members", membersStore) $: groups = setContext>("groups", groupsStore) - $: member = $members.filter(m => m.id === $params.id)[0] || {} + let member: Member|null = null let title = isPublic ? "member" : "member (dash)"; @@ -58,12 +58,10 @@ try { if (isPublic) { const res: Member = await api().members($params.id).get({auth: !isPublic}); - $members = [res] - member = $members.filter(m => m.id === $params.id)[0] + member = res; } else { - const res: Member[] = await api().systems("@me").members.get({ auth: true}); - $members = res; - member = $members.filter(m => m.id === $params.id)[0] + const res: Member = await api().members($params.id).get({auth: !isPublic}); + member = res if (!member.privacy) { notOwnSystem = true; @@ -86,14 +84,17 @@ async function fetchGroups() { try { - let memberGroups: Group[] = await api().members($params.id).groups().get({auth: !isPublic }); - if (!isPublic) memberGroups.forEach(g => g.members = []) - groups.set(memberGroups) - if (!isPublic) { const systemGroups: Group[] = await api().systems("@me").groups.get({ auth: true, query: { with_members: true } }); + const memberList: Member[] = await api().systems("@me").members.get({ auth: true }) + members.set(memberList) groups.set(systemGroups) + } else { + let memberGroups: Group[] = await api().members($params.id).groups().get({auth: !isPublic }); + if (!isPublic) memberGroups.forEach(g => g.members = []) + groups.set(memberGroups) } + groupErr = ""; groupLoading = false; } catch (error) {