From d39500fa34b77483ed7b863a8ae4badebb641014 Mon Sep 17 00:00:00 2001 From: Jonathan Staab Date: Tue, 21 Mar 2023 15:52:22 -0500 Subject: [PATCH] Fix relays list on person detail --- src/agent/tables.ts | 5 ++++- src/routes/MessagesList.svelte | 6 ++++-- src/routes/Notifications.svelte | 2 +- src/routes/PersonDetail.svelte | 4 ++-- src/views/person/Relays.svelte | 6 +++--- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/agent/tables.ts b/src/agent/tables.ts index 3ed3c4ae..b418f3f7 100644 --- a/src/agent/tables.ts +++ b/src/agent/tables.ts @@ -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() diff --git a/src/routes/MessagesList.svelte b/src/routes/MessagesList.svelte index ae3d0668..320ef69d 100644 --- a/src/routes/MessagesList.svelte +++ b/src/routes/MessagesList.svelte @@ -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), diff --git a/src/routes/Notifications.svelte b/src/routes/Notifications.svelte index 2662fb8a..ea5b020d 100644 --- a/src/routes/Notifications.svelte +++ b/src/routes/Notifications.svelte @@ -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) diff --git a/src/routes/PersonDetail.svelte b/src/routes/PersonDetail.svelte index da91703c..633f9431 100644 --- a/src/routes/PersonDetail.svelte +++ b/src/routes/PersonDetail.svelte @@ -244,8 +244,8 @@ {:else if activeTab === "likes"} {:else if activeTab === "relays"} - {#if person?.relays} - + {#if getRelays().length > 0} + {:else if loading} {:else} diff --git a/src/views/person/Relays.svelte b/src/views/person/Relays.svelte index 75e4d72c..8ae4184e 100644 --- a/src/views/person/Relays.svelte +++ b/src/views/person/Relays.svelte @@ -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
@@ -12,10 +12,10 @@ Below are the relays this user publishes to. Join one or more to make sure you never miss their updates.

- {#if (person.relays || []).length === 0} + {#if relays.length === 0}
No relays found
{:else} - {#each person.relays as relay (relay.url)} + {#each relays as relay (relay.url)} {#if relay.write !== "!"} {/if}