Fix relays list on person detail

This commit is contained in:
Jonathan Staab 2023-03-21 15:52:22 -05:00
parent 755d6cfa7f
commit d39500fa34
5 changed files with 14 additions and 9 deletions

View File

@ -6,6 +6,7 @@ import {Table, listener, registry} from "src/agent/storage"
import user from "src/agent/user"
const sortByCreatedAt = sortBy(([k, x]) => x.value.created_at)
const sortByLastSeen = sortBy(([k, x]) => x.value.last_seen)
export const people = new Table("people", "pubkey", {
cache: new Cache({
@ -28,7 +29,9 @@ export const notifications = new Table("notifications", "id")
export const contacts = new Table("contacts", "pubkey")
export const rooms = new Table("rooms", "id")
export const relays = new Table("relays", "url")
export const routes = new Table("routes", "id")
export const routes = new Table("routes", "id", {
cache: new Cache({max: 5000, sort: sortByLastSeen}),
})
listener.connect()

View File

@ -17,8 +17,10 @@
activeTab = tab
}
const accepted = watch("contacts", t => t.all({accepted: true}))
const requests = watch("contacts", t => t.all({"accepted:!eq": true}))
const accepted = watch("contacts", t => sortBy(e => -e.lastMessage, t.all({accepted: true})))
const requests = watch("contacts", t =>
sortBy(e => -e.lastMessage, t.all({"accepted:!eq": true}))
)
const getDisplay = tab => ({
title: toTitle(tab),

View File

@ -26,7 +26,7 @@
$: events = $notifications
.slice(0, limit)
.map(e => [e, findReplyId(e)])
.filter(([e, ref]) => userEvents.get(ref))
.filter(([e, ref]) => userEvents.get(ref)?.kind === 1)
.reduce((r, [e, ref]) => {
const prev = last(r)
const prevTimestamp = pluck("created_at", prev?.notifications || []).reduce(max, 0)

View File

@ -244,8 +244,8 @@
{:else if activeTab === "likes"}
<Likes {pubkey} />
{:else if activeTab === "relays"}
{#if person?.relays}
<Relays {person} />
{#if getRelays().length > 0}
<Relays relays={getRelays()} />
{:else if loading}
<Spinner />
{:else}

View File

@ -3,7 +3,7 @@
import Content from "src/partials/Content.svelte"
import RelayCard from "src/views/relays/RelayCard.svelte"
export let person
export let relays
</script>
<div in:fly={{y: 20}}>
@ -12,10 +12,10 @@
Below are the relays this user publishes to. Join one or more to make sure you never miss
their updates.
</p>
{#if (person.relays || []).length === 0}
{#if relays.length === 0}
<div class="pt-8 text-center">No relays found</div>
{:else}
{#each person.relays as relay (relay.url)}
{#each relays as relay (relay.url)}
{#if relay.write !== "!"}
<RelayCard {relay} />
{/if}