diff --git a/packages/app/src/Components/Feed/TimelineChunk.tsx b/packages/app/src/Components/Feed/TimelineChunk.tsx index 97a6b83f..6f54325b 100644 --- a/packages/app/src/Components/Feed/TimelineChunk.tsx +++ b/packages/app/src/Components/Feed/TimelineChunk.tsx @@ -28,7 +28,7 @@ export default function TimelineChunk(props: TimelineChunkProps) { f.since(props.chunk.since).until(props.chunk.until); } return rb; - }, [props.id, props.chunk, props.builder]); + }, [props.id, props.chunk.until, props.builder]); const feed = useRequestBuilder(sub); diff --git a/packages/app/src/Components/Feed/TimelineFollows.tsx b/packages/app/src/Components/Feed/TimelineFollows.tsx index a59103ea..ac8fc0a9 100644 --- a/packages/app/src/Components/Feed/TimelineFollows.tsx +++ b/packages/app/src/Components/Feed/TimelineFollows.tsx @@ -2,7 +2,7 @@ import "./Timeline.css"; import { unixNow } from "@snort/shared"; import { EventKind, NostrEvent, RequestBuilder } from "@snort/system"; -import { ReactNode, useState } from "react"; +import { ReactNode, useCallback, useState } from "react"; import { DisplayAs, DisplayAsSelector } from "@/Components/Feed/DisplayAsSelector"; import useFollowsControls from "@/Hooks/useFollowControls"; @@ -41,14 +41,20 @@ const TimelineFollows = (props: TimelineFollowsProps) => { firstChunkSize: Hour * 2, }); - const builder = (rb: RequestBuilder) => { - rb.withFilter().authors(followList).kinds([EventKind.TextNote, EventKind.Repost, EventKind.Polls]); - }; + const builder = useCallback( + (rb: RequestBuilder) => { + rb.withFilter().authors(followList).kinds([EventKind.TextNote, EventKind.Repost, EventKind.Polls]); + }, + [followList], + ); - const filterEvents = (a: NostrEvent) => - (props.noteFilter?.(a) ?? true) && - (props.postsOnly ? !a.tags.some(b => b[0] === "e" || b[0] === "a") : true) && - (isFollowing(a.pubkey) || a.tags.filter(a => a[0] === "t").length < 5); + const filterEvents = useCallback( + (a: NostrEvent) => + (props.noteFilter?.(a) ?? true) && + (props.postsOnly ? !a.tags.some(b => b[0] === "e" || b[0] === "a") : true) && + (isFollowing(a.pubkey) || a.tags.filter(a => a[0] === "t").length < 5), + [props.noteFilter, props.postsOnly, followList], + ); return ( <>