From b642f13d36163acd367ef9a155db7bf13a5c54f7 Mon Sep 17 00:00:00 2001 From: kieran Date: Fri, 26 Apr 2024 14:28:24 +0100 Subject: [PATCH] fix: displayAs --- packages/app/src/Components/Feed/TimelineChunk.tsx | 10 ++++++---- packages/app/src/Components/Feed/TimelineFollows.tsx | 8 ++------ packages/app/src/Components/Feed/TimelineRenderer.tsx | 9 +++++---- packages/app/src/Hooks/useTimelineChunks.ts | 3 ++- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/app/src/Components/Feed/TimelineChunk.tsx b/packages/app/src/Components/Feed/TimelineChunk.tsx index 3d1fd0b4..97a6b83f 100644 --- a/packages/app/src/Components/Feed/TimelineChunk.tsx +++ b/packages/app/src/Components/Feed/TimelineChunk.tsx @@ -5,7 +5,7 @@ import { ReactNode, useMemo } from "react"; import { WindowChunk } from "@/Hooks/useTimelineChunks"; import { DisplayAs } from "./DisplayAsSelector"; -import { TimelineFragment } from "./TimelineFragment"; +import { TimelineRenderer } from "./TimelineRenderer"; export interface TimelineChunkProps { id: string; @@ -15,7 +15,6 @@ export interface TimelineChunkProps { noteRenderer?: (ev: NostrEvent) => ReactNode; noteOnClick?: (ev: NostrEvent) => void; displayAs?: DisplayAs; - showDisplayAsSelector?: boolean; } /** @@ -34,13 +33,16 @@ export default function TimelineChunk(props: TimelineChunkProps) { const feed = useRequestBuilder(sub); return ( - props.noteFilter?.(a) ?? true), refTime: props.chunk.until, }} noteOnClick={props.noteOnClick} noteRenderer={props.noteRenderer} + displayAs={props.displayAs} + latest={[]} + showLatest={() => {}} /> ); } diff --git a/packages/app/src/Components/Feed/TimelineFollows.tsx b/packages/app/src/Components/Feed/TimelineFollows.tsx index 4878bc8b..a59103ea 100644 --- a/packages/app/src/Components/Feed/TimelineFollows.tsx +++ b/packages/app/src/Components/Feed/TimelineFollows.tsx @@ -21,7 +21,6 @@ export interface TimelineFollowsProps { noteRenderer?: (ev: NostrEvent) => ReactNode; noteOnClick?: (ev: NostrEvent) => void; displayAs?: DisplayAs; - showDisplayAsSelector?: boolean; } /** @@ -53,11 +52,7 @@ const TimelineFollows = (props: TimelineFollowsProps) => { return ( <> - setDisplayAs(displayAs)} - /> + setDisplayAs(displayAs)} /> {chunks.map(c => ( { noteFilter={filterEvents} noteOnClick={props.noteOnClick} noteRenderer={props.noteRenderer} + displayAs={displayAs} /> ))} showMore()} /> diff --git a/packages/app/src/Components/Feed/TimelineRenderer.tsx b/packages/app/src/Components/Feed/TimelineRenderer.tsx index f28c5bbd..5e747d1a 100644 --- a/packages/app/src/Components/Feed/TimelineRenderer.tsx +++ b/packages/app/src/Components/Feed/TimelineRenderer.tsx @@ -14,7 +14,7 @@ import ProfileImage from "@/Components/User/ProfileImage"; import getEventMedia from "@/Utils/getEventMedia"; export interface TimelineRendererProps { - frags: Array; + frags: Array | TimelineFragment; /** * List of pubkeys who have posted recently */ @@ -29,10 +29,10 @@ export interface TimelineRendererProps { } // filter frags[0].events that have media -function Grid({ frags }: { frags: Array }) { +function Grid({ frags }: { frags: Array | TimelineFragment }) { const [modalEventIndex, setModalEventIndex] = useState(undefined); const allEvents = useMemo(() => { - return frags.flatMap(frag => frag.events); + return (Array.isArray(frags) ? frags : [frags]).flatMap(frag => frag.events); }, [frags]); const mediaEvents = useMemo(() => { return allEvents.filter(event => getEventMedia(event).length > 0); @@ -99,7 +99,8 @@ export function TimelineRenderer(props: TimelineRendererProps) { }, [inView, props.latest]); const renderNotes = () => { - return props.frags.map((frag, index) => ( + const frags = Array.isArray(props.frags) ? props.frags : [props.frags]; + return frags.map((frag, index) => ( = []; for (let x = 0; x < windows; x++) { // offset from now going backwards in time - const offset = opt.now - windowSize * (x - 1); const size = x === 0 && opt.firstChunkSize ? opt.firstChunkSize : windowSize; chunks.push({ since: offset - size, until: offset, }); + offset -= size; } return {