From 43eddd3ede3fc73b5a70638167f2538d4781fd5c Mon Sep 17 00:00:00 2001 From: buttercat1791 Date: Tue, 19 Aug 2025 22:20:53 -0500 Subject: [PATCH] Extract user profile to new interface --- src/lib/components/EventDetails.svelte | 12 ++---------- .../embedded_events/EmbeddedEvent.svelte | 14 +++----------- src/lib/models/user_profile.ts | 12 ++++++++++++ src/lib/snippets/UserSnippets.svelte | 13 +++---------- src/routes/events/+page.svelte | 15 ++------------- 5 files changed, 22 insertions(+), 44 deletions(-) create mode 100644 src/lib/models/user_profile.ts diff --git a/src/lib/components/EventDetails.svelte b/src/lib/components/EventDetails.svelte index db18355..2f26fe6 100644 --- a/src/lib/components/EventDetails.svelte +++ b/src/lib/components/EventDetails.svelte @@ -15,22 +15,14 @@ import ContainingIndexes from "$lib/components/util/ContainingIndexes.svelte"; import Notifications from "$lib/components/Notifications.svelte"; import EmbeddedEvent from "./embedded_events/EmbeddedEvent.svelte"; + import type { UserProfile } from "$lib/models/user_profile"; const { event, profile = null, } = $props<{ event: NDKEvent; - profile?: { - name?: string; - display_name?: string; - about?: string; - picture?: string; - banner?: string; - website?: string; - lud16?: string; - nip05?: string; - } | null; + profile?: UserProfile | null; }>(); let authorDisplayName = $state(undefined); diff --git a/src/lib/components/embedded_events/EmbeddedEvent.svelte b/src/lib/components/embedded_events/EmbeddedEvent.svelte index af455c1..30ef2dd 100644 --- a/src/lib/components/embedded_events/EmbeddedEvent.svelte +++ b/src/lib/components/embedded_events/EmbeddedEvent.svelte @@ -10,7 +10,8 @@ import { nip19 } from "nostr-tools"; import { repostKinds } from "$lib/consts"; import { UserOutline } from "flowbite-svelte-icons"; - + import type { UserProfile } from "$lib/models/user_profile"; + const { nostrIdentifier, nestingLevel = 0, @@ -22,16 +23,7 @@ const ndk = getNdkContext(); let event = $state(null); - let profile = $state<{ - name?: string; - display_name?: string; - about?: string; - picture?: string; - banner?: string; - website?: string; - lud16?: string; - nip05?: string; - } | null>(null); + let profile = $state< UserProfile | null>(null); let loading = $state(true); let error = $state(null); let authorDisplayName = $state(undefined); diff --git a/src/lib/models/user_profile.ts b/src/lib/models/user_profile.ts new file mode 100644 index 0000000..283ff9a --- /dev/null +++ b/src/lib/models/user_profile.ts @@ -0,0 +1,12 @@ +export interface UserProfile { + name?: string; + display_name?: string; + about?: string; + picture?: string; + banner?: string; + website?: string; + lud16?: string; + nip05?: string; + isInUserLists?: boolean; + listKinds?: number[]; +} diff --git a/src/lib/snippets/UserSnippets.svelte b/src/lib/snippets/UserSnippets.svelte index 6e96719..d069c94 100644 --- a/src/lib/snippets/UserSnippets.svelte +++ b/src/lib/snippets/UserSnippets.svelte @@ -5,14 +5,7 @@ toNpub, getUserMetadata, } from "$lib/utils/nostrUtils"; - - // Extend NostrProfile locally to allow display_name for legacy support - type NostrProfileWithLegacy = { - displayName?: string; - display_name?: string; - name?: string; - [key: string]: any; - }; + import type { UserProfile } from "$lib/models/user_profile"; export { userBadge }; @@ -22,13 +15,13 @@ {#if npub} {#if !displayText || displayText.trim().toLowerCase() === "unknown"} {#await getUserMetadata(npub, undefined, false) then profile} - {@const p = profile as NostrProfileWithLegacy} + {@const p = profile as UserProfile}