perf: reduce re-renders in NoteList
This commit is contained in:
@@ -47,7 +47,7 @@ const NoteList = forwardRef(
|
|||||||
hideUntrustedNotes = false,
|
hideUntrustedNotes = false,
|
||||||
areAlgoRelays = false,
|
areAlgoRelays = false,
|
||||||
showRelayCloseReason = false,
|
showRelayCloseReason = false,
|
||||||
pinnedEventIds = [],
|
pinnedEventIds,
|
||||||
filterFn
|
filterFn
|
||||||
}: {
|
}: {
|
||||||
subRequests: TFeedSubRequest[]
|
subRequests: TFeedSubRequest[]
|
||||||
@@ -82,7 +82,7 @@ const NoteList = forwardRef(
|
|||||||
const shouldHideEvent = useCallback(
|
const shouldHideEvent = useCallback(
|
||||||
(evt: Event) => {
|
(evt: Event) => {
|
||||||
const pinnedEventHexIdSet = new Set()
|
const pinnedEventHexIdSet = new Set()
|
||||||
pinnedEventIds.forEach((id) => {
|
pinnedEventIds?.forEach((id) => {
|
||||||
try {
|
try {
|
||||||
const { type, data } = decode(id)
|
const { type, data } = decode(id)
|
||||||
if (type === 'nevent') {
|
if (type === 'nevent') {
|
||||||
@@ -110,7 +110,7 @@ const NoteList = forwardRef(
|
|||||||
|
|
||||||
return false
|
return false
|
||||||
},
|
},
|
||||||
[hideUntrustedNotes, mutePubkeySet, pinnedEventIds, isEventDeleted, filterFn]
|
[hideUntrustedNotes, mutePubkeySet, JSON.stringify(pinnedEventIds), isEventDeleted, filterFn]
|
||||||
)
|
)
|
||||||
|
|
||||||
const filteredNotes = useMemo(() => {
|
const filteredNotes = useMemo(() => {
|
||||||
@@ -311,7 +311,7 @@ const NoteList = forwardRef(
|
|||||||
return () => {
|
return () => {
|
||||||
promise.then((closer) => closer())
|
promise.then((closer) => closer())
|
||||||
}
|
}
|
||||||
}, [JSON.stringify(subRequests), refreshCount, showKinds])
|
}, [JSON.stringify(subRequests), refreshCount, JSON.stringify(showKinds)])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const options = {
|
const options = {
|
||||||
@@ -373,9 +373,7 @@ const NoteList = forwardRef(
|
|||||||
|
|
||||||
const list = (
|
const list = (
|
||||||
<div className="min-h-screen">
|
<div className="min-h-screen">
|
||||||
{pinnedEventIds.map((id) => (
|
{pinnedEventIds?.map((id) => <PinnedNoteCard key={id} eventId={id} className="w-full" />)}
|
||||||
<PinnedNoteCard key={id} eventId={id} className="w-full" />
|
|
||||||
))}
|
|
||||||
{filteredNotes.map(({ key, event, reposters }) => (
|
{filteredNotes.map(({ key, event, reposters }) => (
|
||||||
<NoteCard
|
<NoteCard
|
||||||
key={key}
|
key={key}
|
||||||
|
|||||||
Reference in New Issue
Block a user