mirror of
https://github.com/dergigi/boris.git
synced 2025-12-17 14:44:26 +01:00
40 lines
959 B
TypeScript
40 lines
959 B
TypeScript
import { nip19 } from 'nostr-tools'
|
|
import type { NostrEvent } from 'nostr-tools'
|
|
|
|
export function getNpubFallbackDisplay(pubkey: string): string {
|
|
try {
|
|
const npub = nip19.npubEncode(pubkey)
|
|
return `${npub.slice(5, 12)}...`
|
|
} catch {
|
|
return `${pubkey.slice(0, 8)}...`
|
|
}
|
|
}
|
|
|
|
export function extractProfileDisplayName(profileEvent: NostrEvent | null | undefined): string {
|
|
if (!profileEvent || profileEvent.kind !== 0) {
|
|
return ''
|
|
}
|
|
|
|
try {
|
|
const profileData = JSON.parse(profileEvent.content || '{}') as {
|
|
name?: string
|
|
display_name?: string
|
|
nip05?: string
|
|
}
|
|
|
|
if (profileData.name) return profileData.name
|
|
if (profileData.display_name) return profileData.display_name
|
|
if (profileData.nip05) return profileData.nip05
|
|
|
|
return getNpubFallbackDisplay(profileEvent.pubkey)
|
|
} catch {
|
|
try {
|
|
return getNpubFallbackDisplay(profileEvent.pubkey)
|
|
} catch {
|
|
return ''
|
|
}
|
|
}
|
|
}
|
|
|
|
|