diff --git a/src/components/lightbox-provider.tsx b/src/components/lightbox-provider.tsx index 11b17dfe4..19b1deae9 100644 --- a/src/components/lightbox-provider.tsx +++ b/src/components/lightbox-provider.tsx @@ -34,7 +34,7 @@ import UserAvatarLink from "./user-avatar-link"; import { UserLink } from "./user-link"; import { UserDnsIdentityIcon } from "./user-dns-identity-icon"; import styled from "@emotion/styled"; -import { getSharableNoteId } from "../helpers/nip19"; +import { getSharableEventAddress } from "../helpers/nip19"; type RefType = MutableRefObject; @@ -101,7 +101,7 @@ function getRefPath(ref: RefType) { } function EventSlideHeader({ event, ...props }: { event: NostrEvent } & Omit) { - const encoded = useMemo(() => getSharableNoteId(event.id), [event.id]); + const encoded = useMemo(() => getSharableEventAddress(event), [event]); return ( diff --git a/src/helpers/nip19.ts b/src/helpers/nip19.ts index a5842991e..2166b413a 100644 --- a/src/helpers/nip19.ts +++ b/src/helpers/nip19.ts @@ -67,30 +67,19 @@ export function normalizeToHex(hex: string) { return null; } -/** @deprecated */ -export function getSharableNoteId(eventId: string) { - const relays = getEventRelays(eventId).value; - const ranked = relayScoreboardService.getRankedRelays(relays); - const onlyTwo = ranked.slice(0, 2); - - if (onlyTwo.length > 0) { - return nip19.neventEncode({ id: eventId, relays: onlyTwo }); - } else return nip19.noteEncode(eventId); -} - export function getSharableEventAddress(event: NostrEvent) { const relays = getEventRelays(getEventUID(event)).value; const ranked = relayScoreboardService.getRankedRelays(relays); - const onlyTwo = ranked.slice(0, 2); + const maxTwo = ranked.slice(0, 2); if (isReplaceable(event.kind)) { const d = event.tags.find(isDTag)?.[1]; if (!d) return null; - return nip19.naddrEncode({ kind: event.kind, identifier: d, pubkey: event.pubkey, relays: onlyTwo }); + return nip19.naddrEncode({ kind: event.kind, identifier: d, pubkey: event.pubkey, relays: maxTwo }); } else { - if (onlyTwo.length > 0) { - return nip19.neventEncode({ id: event.id, relays: onlyTwo }); - } else return nip19.noteEncode(event.id); + if (maxTwo.length == 2) { + return nip19.neventEncode({ id: event.id, relays: maxTwo }); + } else return nip19.neventEncode({ id: event.id, relays: maxTwo, author: event.pubkey }); } }