fix: displayAs
Some checks reported errors
continuous-integration/drone/push Build encountered an error

This commit is contained in:
kieran 2024-04-26 14:28:24 +01:00
parent 85261eaeab
commit b642f13d36
Signed by: Kieran
GPG Key ID: DE71CEB3925BE941
4 changed files with 15 additions and 15 deletions

View File

@ -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 (
<TimelineFragment
frag={{
<TimelineRenderer
frags={{
events: feed.filter(a => props.noteFilter?.(a) ?? true),
refTime: props.chunk.until,
}}
noteOnClick={props.noteOnClick}
noteRenderer={props.noteRenderer}
displayAs={props.displayAs}
latest={[]}
showLatest={() => {}}
/>
);
}

View File

@ -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 (
<>
<DisplayAsSelector
show={props.showDisplayAsSelector}
activeSelection={displayAs}
onSelect={(displayAs: DisplayAs) => setDisplayAs(displayAs)}
/>
<DisplayAsSelector activeSelection={displayAs} onSelect={(displayAs: DisplayAs) => setDisplayAs(displayAs)} />
{chunks.map(c => (
<TimelineChunk
key={c.until}
@ -67,6 +62,7 @@ const TimelineFollows = (props: TimelineFollowsProps) => {
noteFilter={filterEvents}
noteOnClick={props.noteOnClick}
noteRenderer={props.noteRenderer}
displayAs={displayAs}
/>
))}
<AutoLoadMore onClick={() => showMore()} />

View File

@ -14,7 +14,7 @@ import ProfileImage from "@/Components/User/ProfileImage";
import getEventMedia from "@/Utils/getEventMedia";
export interface TimelineRendererProps {
frags: Array<TimelineFragment>;
frags: Array<TimelineFragment> | 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<TimelineFragment> }) {
function Grid({ frags }: { frags: Array<TimelineFragment> | TimelineFragment }) {
const [modalEventIndex, setModalEventIndex] = useState<number | undefined>(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) => (
<ErrorBoundary key={frag.events[0]?.id + index}>
<TimelineFragment
frag={frag}

View File

@ -9,15 +9,16 @@ export default function useTimelineChunks(opt: { window?: number; firstChunkSize
const [windowSize] = useState(opt.window ?? 60 * 60 * 2);
const [windows, setWindows] = useState(1);
let offset = opt.now;
const chunks: Array<WindowChunk> = [];
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 {