aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes
diff options
context:
space:
mode:
authorAdrien Hopkins <[email protected]>2025-12-13 15:07:32 -0500
committerAdrien Hopkins <[email protected]>2025-12-13 15:07:32 -0500
commita1801b2c8c68da10fc70a835c46e6121e3cb73b5 (patch)
tree23ac9a7e6c2ec09f694daff7c9d45a96ba87f407 /src/routes
parentee846df5039ee3768fa302812442a01e03f4e03a (diff)
downloadcoinos-ui-a1801b2c8c68da10fc70a835c46e6121e3cb73b5.tar.gz
coinos-ui-a1801b2c8c68da10fc70a835c46e6121e3cb73b5.zip
Get NIP-05 usernames
Diffstat (limited to 'src/routes')
-rw-r--r--src/routes/(app)/dm/+page.svelte26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/routes/(app)/dm/+page.svelte b/src/routes/(app)/dm/+page.svelte
index 025dde40..3e9d8629 100644
--- a/src/routes/(app)/dm/+page.svelte
+++ b/src/routes/(app)/dm/+page.svelte
@@ -1,19 +1,29 @@
<script lang="ts">
+ import { isValid } from "nostr-tools/nip05";
import { t } from "$lib/translations";
import { pTagKeys } from '$lib/nostr';
+ import { getNip05 } from '$lib/nip05';
import { getMessageRumours } from '$lib/nip17';
let { data } = $props();
const { user } = data;
- const updateSendersRecipients = (rumours: object[]) => {
+ const userInfo = async (pubkey: string) => {
+ const nip05Info = await getNip05(pubkey);
+ const valid = await isValid(pubkey, nip05Info.nip05);
+ return { name: nip05Info.name, nip05: nip05Info.nip05, valid };
+ }
+
+ const updateSendersRecipients = async (rumours: object[]) => {
const senders = new Set<string>();
const recipients = new Set<string>();
for (const rumour of rumours) {
if (rumour.pubkey !== user.pubkey) {
- senders.add(rumour.pubkey);
+ senders.add(await userInfo(rumour.pubkey));
} else {
- pTagKeys(rumour).forEach(r => recipients.add(r));
+ for (const pubkey of pTagKeys(rumour)) {
+ recipients.add(await userInfo(pubkey));
+ }
}
}
messageSenders = Array.from(senders);
@@ -25,6 +35,12 @@
getMessageRumours(user).then(updateSendersRecipients);
</script>
+<style>
+ .invalid {
+ text-decoration: line-through;
+ }
+</style>
+
<div class="container">
<div class="space-y-2 mx-auto space-y-5 lg:max-w-xl xl:max-w-2xl lg:pl-10 mt-5 lg:mt-0">
<h1
@@ -35,14 +51,14 @@
<p>The following people have sent messages to you:</p>
<ul>
{#each messageSenders as sender}
- <li>{sender}</li>
+ <li class={sender.valid ? "" : "invalid"}>{sender.name}{#if sender.valid} &#x2713;{/if}</li>
{/each}
</ul>
<p>The following people have received messages from you:</p>
<ul>
{#each messageRecipients as recipient}
- <li>{recipient}</li>
+ <li class={recipient.valid ? "" : "invalid"}>{recipient.name}{#if recipient.valid} &#x2713;{/if}</li>
{/each}
</ul>
</div>