diff --git a/src/app/note/note.html b/src/app/note/note.html index 4607739..901a252 100644 --- a/src/app/note/note.html +++ b/src/app/note/note.html @@ -40,6 +40,16 @@ --> +
+
+ {{ event.created_at | ago }} + +
+ + + +
+
{{ event.created_at | ago }} @@ -48,9 +58,8 @@ - +
-
diff --git a/src/app/services/event.ts b/src/app/services/event.ts index 4de4abf..ad5a0f1 100644 --- a/src/app/services/event.ts +++ b/src/app/services/event.ts @@ -57,6 +57,20 @@ export class EventService { return eTags; } + parentEventId(event: NostrEventDocument | undefined) { + if (!event) { + return; + } + + const eTags = event.tags.filter((t) => t[0] === 'e'); + + if (eTags.length == 0) { + return undefined; + } + + return eTags[eTags.length - 1][1]; + } + /** Returns the root event, first looks for "root" attribute on the e tag element or picks first in array. */ rootEventId(event: NostrEventDocument | null) { if (!event) { diff --git a/src/app/services/profile.ts b/src/app/services/profile.ts index 8ee196c..ca76164 100644 --- a/src/app/services/profile.ts +++ b/src/app/services/profile.ts @@ -485,9 +485,6 @@ export class ProfileService { existingProfile.followed = now; existingProfile.circle = circle; existingProfile.status = ProfileStatus.Follow; - - console.log('Created new empty profile: ', existingProfile); - existingProfile.npub = this.utilities.getNostrIdentifier(existingProfile.pubkey); // Save directly, don't put in cache. diff --git a/src/app/services/thread.ts b/src/app/services/thread.ts index ddc5415..f0c6666 100644 --- a/src/app/services/thread.ts +++ b/src/app/services/thread.ts @@ -22,6 +22,10 @@ export class ThreadService { #events: NostrEventDocument[] | undefined = []; #eventsChanged: BehaviorSubject = new BehaviorSubject(this.#events); + above: NostrEventDocument | undefined = undefined; + #aboveChanged: BehaviorSubject = new BehaviorSubject(this.above); + above$ = this.#aboveChanged.asObservable(); + hasLoaded = false; get before$(): Observable { @@ -146,6 +150,20 @@ export class ThreadService { rootEventId = event.id!; } + // Grab the immediate parent, which will be clickable. + const parentId = this.eventService.parentEventId(event); + + this.above = undefined; + this.#aboveChanged.next(this.above); + + // If not parent Id, it means user is looking at root so we don't need to load additional events. + if (parentId) { + this.dataService.downloadEvent(parentId).subscribe((event) => { + this.above = event; + this.#aboveChanged.next(this.above); + }); + } + // this.feedService // .downloadThread(rootEventId) // // .pipe(