diff --git a/src/renderer/src/PageManager.tsx b/src/renderer/src/PageManager.tsx
index 70b606d1..18177213 100644
--- a/src/renderer/src/PageManager.tsx
+++ b/src/renderer/src/PageManager.tsx
@@ -27,6 +27,7 @@ type TSecondaryPageContext = {
}
type TStackItem = {
+ index: number
pageName: string
props: any
component: React.ReactNode
@@ -89,8 +90,10 @@ export function PageManager({
if (!isValidElement(element)) return
setSecondaryStack((prevStack) => {
+ const currentStack = prevStack[prevStack.length - 1]
+ const index = currentStack ? currentStack.index + 1 : 0
const component = cloneElement(element, props)
- const newStack = [...prevStack, { pageName, props, component }]
+ const newStack = [...prevStack, { index, pageName, props, component }]
if (newStack.length > maxStackSize) newStack.shift()
return newStack
})
@@ -112,7 +115,7 @@ export function PageManager({
{secondaryStack.length ? (
secondaryStack.map((item, index) => (
diff --git a/src/renderer/src/components/NoteCard/RepostNoteCard.tsx b/src/renderer/src/components/NoteCard/RepostNoteCard.tsx
index 936074e5..f352f41c 100644
--- a/src/renderer/src/components/NoteCard/RepostNoteCard.tsx
+++ b/src/renderer/src/components/NoteCard/RepostNoteCard.tsx
@@ -10,8 +10,8 @@ export default function RepostNoteCard({ event, className }: { event: Event; cla
return (
diff --git a/src/renderer/src/components/NoteList/index.tsx b/src/renderer/src/components/NoteList/index.tsx
index ce4c929f..30470eac 100644
--- a/src/renderer/src/components/NoteList/index.tsx
+++ b/src/renderer/src/components/NoteList/index.tsx
@@ -42,7 +42,9 @@ export default function NoteList({
const sub = client.subscribeEvents(relayUrls, noteFilter, {
onEose: (events) => {
const processedEvents = events.filter((e) => !isReplyNoteEvent(e))
- setEvents((pre) => [...pre, ...processedEvents])
+ if (processedEvents.length > 0) {
+ setEvents((pre) => [...pre, ...processedEvents])
+ }
if (events.length > 0) {
setUntil(events[events.length - 1].created_at - 1)
}
diff --git a/src/renderer/src/components/ReplyNoteList/index.tsx b/src/renderer/src/components/ReplyNoteList/index.tsx
index 6c635c0c..d8e3d40a 100644
--- a/src/renderer/src/components/ReplyNoteList/index.tsx
+++ b/src/renderer/src/components/ReplyNoteList/index.tsx
@@ -1,5 +1,5 @@
import { Separator } from '@renderer/components/ui/separator'
-import { getParentEventId } from '@renderer/lib/event'
+import { getParentEventId, isReplyNoteEvent } from '@renderer/lib/event'
import { cn } from '@renderer/lib/utils'
import { useNoteStats } from '@renderer/providers/NoteStatsProvider'
import client from '@renderer/services/client.service'
@@ -28,14 +28,17 @@ export default function ReplyNoteList({ event, className }: { event: Event; clas
until
})
const sortedEvents = events.sort((a, b) => a.created_at - b.created_at)
- if (sortedEvents.length > 0) {
+ const processedEvents = events.filter((e) => isReplyNoteEvent(e))
+ if (processedEvents.length > 0) {
const eventMap: Record
= {}
- const eventsWithParentIds = sortedEvents.map((event) => {
+ const eventsWithParentIds = processedEvents.map((event) => {
eventMap[event.id] = event
return [event, getParentEventId(event)] as [Event, string | undefined]
})
setEventsWithParentId((pre) => [...eventsWithParentIds, ...pre])
setEventMap((pre) => ({ ...pre, ...eventMap }))
+ }
+ if (sortedEvents.length > 0) {
setUntil(sortedEvents[0].created_at - 1)
}
setHasMore(sortedEvents.length >= 100)
diff --git a/src/renderer/src/lib/event.ts b/src/renderer/src/lib/event.ts
index 4573e886..5c51b4b5 100644
--- a/src/renderer/src/lib/event.ts
+++ b/src/renderer/src/lib/event.ts
@@ -9,7 +9,7 @@ export function isNsfwEvent(event: Event) {
}
export function isReplyNoteEvent(event: Event) {
- return event.kind === kinds.ShortTextNote && event.tags.some(tagNameEquals('e'))
+ return event.kind === kinds.ShortTextNote && event.tags.some(rootETag)
}
export function getParentEventId(event: Event) {
diff --git a/src/renderer/src/pages/secondary/NotePage/index.tsx b/src/renderer/src/pages/secondary/NotePage/index.tsx
index e5acd962..28ce43b2 100644
--- a/src/renderer/src/pages/secondary/NotePage/index.tsx
+++ b/src/renderer/src/pages/secondary/NotePage/index.tsx
@@ -1,5 +1,5 @@
-import ReplyNoteList from '@renderer/components/ReplyNoteList'
import Note from '@renderer/components/Note'
+import ReplyNoteList from '@renderer/components/ReplyNoteList'
import { Separator } from '@renderer/components/ui/separator'
import SecondaryPageLayout from '@renderer/layouts/SecondaryPageLayout'
import { Event } from 'nostr-tools'