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" import user from "src/agent/user"
const sortByCreatedAt = sortBy(([k, x]) => x.value.created_at) 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", { export const people = new Table("people", "pubkey", {
cache: new Cache({ cache: new Cache({
@ -28,7 +29,9 @@ export const notifications = new Table("notifications", "id")
export const contacts = new Table("contacts", "pubkey") export const contacts = new Table("contacts", "pubkey")
export const rooms = new Table("rooms", "id") export const rooms = new Table("rooms", "id")
export const relays = new Table("relays", "url") 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() listener.connect()

View File

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

View File

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

View File

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

View File

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