diff --git a/package-lock.json b/package-lock.json index 8d9c140e..194e8df1 100644 Binary files a/package-lock.json and b/package-lock.json differ diff --git a/package.json b/package.json index 6c1a26d6..87640d8c 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "@welshman/content": "^0.0.5", "@welshman/feeds": "^0.0.12", "@welshman/lib": "^0.0.10", - "@welshman/net": "^0.0.13", + "@welshman/net": "^0.0.14", "@welshman/util": "^0.0.15", "bowser": "^2.11.0", "classnames": "^2.5.1", diff --git a/src/app/shared/FeedCard.svelte b/src/app/shared/FeedCard.svelte index 793fce1a..73db82ad 100644 --- a/src/app/shared/FeedCard.svelte +++ b/src/app/shared/FeedCard.svelte @@ -12,8 +12,9 @@ import PersonBadgeSmall from "src/app/shared/PersonBadgeSmall.svelte" import {readFeed, readList, displayFeed, mapListToFeed, getSingletonValues} from "src/domain" import { - repository, + hints, pubkey, + repository, addFeedFavorite, removeFeedFavorite, userFeedFavorites, @@ -26,6 +27,7 @@ const expandDefinition = boolCtrl() const event = repository.getEvent(address) const deleted = repository.isDeleted(event) + const naddr = Address.from(address, hints.Event(event).getUrls()).toNaddr() const feed = address.startsWith(NAMED_BOOKMARKS) ? mapListToFeed(readList(event)) : readFeed(event) @@ -88,7 +90,7 @@ on:click={toggleFavorite}> - + {#if $expandDefinition.enabled} diff --git a/src/engine/state.ts b/src/engine/state.ts index c8e5edb1..c2bd54bd 100644 --- a/src/engine/state.ts +++ b/src/engine/state.ts @@ -1537,6 +1537,7 @@ export const onAuth = async (url, challenge) => { export type MySubscribeRequest = SubscribeRequest & { onEvent?: (event: TrustedEvent) => void + onEose?: (url: string) => void onComplete?: () => void skipCache?: boolean forcePlatform?: boolean @@ -1581,6 +1582,10 @@ export const subscribe = ({forcePlatform = true, ...request}: MySubscribeRequest projections.push(await ensureUnwrapped(event)) }) + if (request.onEose) { + sub.emitter.on("eose", request.onEose) + } + if (request.onComplete) { sub.emitter.on("complete", request.onComplete) } @@ -1619,7 +1624,14 @@ export const subscribePersistent = (request: MySubscribeRequest) => { export const LOAD_OPTS = {timeout: 3000, closeOnEose: true} -export const load = (request: MySubscribeRequest) => subscribe({...request, ...LOAD_OPTS}).result +export const load = (request: MySubscribeRequest) => + new Promise(resolve => { + const events = [] + const sub = subscribe({...request, ...LOAD_OPTS}) + + sub.emitter.on("event", (url: string, event: TrustedEvent) => events.push(event)) + sub.emitter.on("complete", (url: string) => resolve(events)) + }) export const loadOne = (request: MySubscribeRequest) => new Promise(resolve => {