update pages

This commit is contained in:
Ren Amamiya
2023-05-06 09:58:35 +07:00
parent 306b09ce64
commit 19796794b0
3 changed files with 50 additions and 39 deletions

View File

@@ -45,48 +45,51 @@ export function Page() {
}, [fetchNextPage, allRows.length, rowVirtualizer.getVirtualItems()]); }, [fetchNextPage, allRows.length, rowVirtualizer.getVirtualItems()]);
return ( return (
<div className="relative h-full w-full rounded-lg border border-zinc-800 bg-zinc-900 shadow-input shadow-black/20"> <div className="flex h-full flex-col justify-between gap-4">
{status === 'loading' ? ( <div className="flex h-11 w-full shrink-0 items-center justify-between border-b border-zinc-800"></div>
<Placeholder /> <div className="relative flex w-full flex-1 flex-col justify-between rounded-lg border border-zinc-800 bg-zinc-900 shadow-input shadow-black/20">
) : status === 'error' ? ( {status === 'loading' ? (
<div>{error.message}</div> <Placeholder />
) : ( ) : status === 'error' ? (
<div ref={parentRef} className="scrollbar-hide h-full w-full overflow-y-auto" style={{ contain: 'strict' }}> <div>{error.message}</div>
<div ) : (
className="relative w-full" <div ref={parentRef} className="scrollbar-hide h-full w-full overflow-y-auto" style={{ contain: 'strict' }}>
style={{
height: `${rowVirtualizer.getTotalSize()}px`,
}}
>
<div <div
className="absolute left-0 top-0 w-full" className="relative w-full"
style={{ style={{
transform: `translateY(${itemsVirtualizer[0].start - rowVirtualizer.options.scrollMargin}px)`, height: `${rowVirtualizer.getTotalSize()}px`,
}} }}
> >
{rowVirtualizer.getVirtualItems().map((virtualRow) => { <div
const note = allRows[virtualRow.index]; className="absolute left-0 top-0 w-full"
if (note) { style={{
if (note.kind === 1) { transform: `translateY(${itemsVirtualizer[0].start - rowVirtualizer.options.scrollMargin}px)`,
return ( }}
<div key={virtualRow.index} data-index={virtualRow.index} ref={rowVirtualizer.measureElement}> >
<NoteBase key={note.event_id} event={note} /> {rowVirtualizer.getVirtualItems().map((virtualRow) => {
</div> const note = allRows[virtualRow.index];
); if (note) {
} else { if (note.kind === 1) {
return ( return (
<div key={virtualRow.index} data-index={virtualRow.index} ref={rowVirtualizer.measureElement}> <div key={virtualRow.index} data-index={virtualRow.index} ref={rowVirtualizer.measureElement}>
<NoteQuoteRepost key={note.event_id} event={note} /> <NoteBase key={note.event_id} event={note} />
</div> </div>
); );
} else {
return (
<div key={virtualRow.index} data-index={virtualRow.index} ref={rowVirtualizer.measureElement}>
<NoteQuoteRepost key={note.event_id} event={note} />
</div>
);
}
} }
} })}
})} </div>
</div> </div>
</div> </div>
</div> )}
)} <div>{isFetching && !isFetchingNextPage ? <Placeholder /> : null}</div>
<div>{isFetching && !isFetchingNextPage ? <Placeholder /> : null}</div> </div>
</div> </div>
); );
} }

View File

@@ -1,3 +1,7 @@
export default function Page() { export function Page() {
return <></>; return (
<div>
<p>MySpace</p>
</div>
);
} }

View File

@@ -1,3 +1,7 @@
export default function Page() { export function Page() {
return <></>; return (
<div>
<p>MySpace</p>
</div>
);
} }