NoteInner prop waitUntilInView = false

This commit is contained in:
Martti Malmi 2024-01-02 09:33:22 +02:00
parent 81c9285d46
commit 2c14d64a95
4 changed files with 6 additions and 2 deletions

View File

@ -41,6 +41,7 @@ export interface NoteProps {
longFormPreview?: boolean;
truncate?: boolean;
};
waitUntilInView?: boolean;
}
export default function Note(props: NoteProps) {

View File

@ -31,7 +31,7 @@ import DisplayName from "@/Element/User/DisplayName";
const TEXT_TRUNCATE_LENGTH = 400;
export function NoteInner(props: NoteProps) {
const { data: ev, related, highlight, options: opt, ignoreModeration = false, className } = props;
const { data: ev, related, highlight, options: opt, ignoreModeration = false, className , waitUntilInView } = props;
const baseClassName = classNames("note min-h-[110px] flex flex-col gap-4 card", className);
const navigate = useNavigate();
@ -326,7 +326,7 @@ export function NoteInner(props: NoteProps) {
}
function content() {
if (!inView) return undefined;
if (waitUntilInView && !inView) return undefined;
return (
<>
{options.showHeader && (

View File

@ -13,6 +13,7 @@ export interface TimelineFragment {
export interface TimelineFragProps {
frag: TimelineFragment;
related: Array<TaggedNostrEvent>;
index: number;
noteRenderer?: (ev: TaggedNostrEvent) => ReactNode;
noteOnClick?: (ev: TaggedNostrEvent) => void;
noteContext?: (ev: TaggedNostrEvent) => ReactNode;
@ -41,6 +42,7 @@ export function TimelineFragment(props: TimelineFragProps) {
options={{
truncate: true,
}}
waitUntilInView={props.index > 10}
/>
),
)}

View File

@ -99,6 +99,7 @@ export function TimelineRenderer(props: TimelineRendererProps) {
noteRenderer={props.noteRenderer}
noteOnClick={props.noteOnClick}
noteContext={props.noteContext}
index={index}
/>
</ErrorBoundary>
));