diff --git a/src/app/components/ProfileCircles.svelte b/src/app/components/ProfileCircles.svelte index 6452082c..0b9a81ea 100644 --- a/src/app/components/ProfileCircles.svelte +++ b/src/app/components/ProfileCircles.svelte @@ -1,4 +1,5 @@
- {#each pubkeys.toSorted().slice(0, 15) as pubkey (pubkey)} + {#each pubkeys + .filter(p => getProfile(p)?.picture) + .toSorted() + .slice(0, 15) as pubkey (pubkey)}
diff --git a/src/app/components/RelaySummary.svelte b/src/app/components/RelaySummary.svelte index e79b7a81..ddb8afce 100644 --- a/src/app/components/RelaySummary.svelte +++ b/src/app/components/RelaySummary.svelte @@ -5,7 +5,7 @@ import RelayIcon from "@app/components/RelayIcon.svelte" import RelayDescription from "@app/components/RelayDescription.svelte" import ProfileCircles from "@app/components/ProfileCircles.svelte" - import {deriveSpaceMembers, deriveUserRooms} from "@app/core/state" + import {deriveGroupListPubkeys, deriveUserRooms} from "@app/core/state" type Props = { url: string @@ -13,7 +13,7 @@ const {url}: Props = $props() const rooms = deriveUserRooms(url) - const members = deriveSpaceMembers(url) + const favorited = deriveGroupListPubkeys(url)
@@ -43,10 +43,10 @@
- {#if $members.length > 0} + {#if $favorited.size > 0}
- Members: - + Favorited By: +
{/if} diff --git a/src/app/core/state.ts b/src/app/core/state.ts index c56c5a08..fc12b34b 100644 --- a/src/app/core/state.ts +++ b/src/app/core/state.ts @@ -565,7 +565,7 @@ export const loadGroupList = makeLoadItem(makeOutboxLoader(ROOMS), getGroupList) export const deriveGroupList = makeDeriveItem(groupListsByPubkey, loadGroupList) -export const groupListsPubkeysByUrl = derived(groupListsByPubkey, $groupListsByPubkey => { +export const groupListPubkeysByUrl = derived(groupListsByPubkey, $groupListsByPubkey => { const result = new Map>() for (const list of $groupListsByPubkey.values()) { @@ -587,6 +587,9 @@ export const groupListsPubkeysByUrl = derived(groupListsByPubkey, $groupListsByP return result }) +export const deriveGroupListPubkeys = (url: string) => + derived(groupListPubkeysByUrl, $groupListPubkeysByUrl => new Set($groupListPubkeysByUrl.get(url))) + export const getSpaceUrlsFromGroupList = (groupList: List | undefined) => { const tags = getListTags(groupList) const urls = getRelayTagValues(tags) diff --git a/src/routes/discover/+page.svelte b/src/routes/discover/+page.svelte index beb346ca..2a296da4 100644 --- a/src/routes/discover/+page.svelte +++ b/src/routes/discover/+page.svelte @@ -27,7 +27,7 @@ bootstrapPubkeys, loadGroupList, getSpaceUrlsFromGroupList, - groupListsPubkeysByUrl, + groupListPubkeysByUrl, parseInviteLink, } from "@app/core/state" import {pushModal} from "@app/util/modal" @@ -59,13 +59,13 @@ const relaySearch = $derived( createSearch( - $relays.filter(r => $groupListsPubkeysByUrl.has(r.url) && r.url !== inviteData?.url), + $relays.filter(r => $groupListPubkeysByUrl.has(r.url) && r.url !== inviteData?.url), { getValue: (relay: RelayProfile) => relay.url, sortFn: ({score, item}) => { if (score && score > 0.1) return -score! - const wotScore = $groupListsPubkeysByUrl.get(item.url)!.size + const wotScore = $groupListPubkeysByUrl.get(item.url)!.size return score ? dec(score) * wotScore : -wotScore },