- {posts.length ? (
- items
- ) : (
+ const items = virtualizer.getVirtualItems();
+
+ if (!posts.length) {
+ return (
+
{_("No posts yet")}
- )}
+
+ );
+ }
+
+ return (
+
+
+ {items.map((virtualItem) => {
+ const post = posts[virtualItem.index];
+ return (
+
+ {useMemo(
+ () => (
+
+ ),
+ [post.id, post.likes, post.liked, post.replies],
+ )}
+
+ );
+ })}
+
);
}
diff --git a/src/lib/manager.ts b/src/lib/manager.ts
index 423f7d0..28c2ef1 100644
--- a/src/lib/manager.ts
+++ b/src/lib/manager.ts
@@ -42,7 +42,7 @@ export class Manager {
await db.posts.where("active").below(oldDate).delete();
const onPostsChanged = throttle(async () => {
- setPosts(await db.posts.orderBy("active").reverse().limit(500).toArray());
+ setPosts(await db.posts.orderBy("active").reverse().toArray());
}, 500);
this.queue.push({
payload: {
@@ -120,13 +120,11 @@ export class Manager {
}
async getReplies(postId: string): Promise
{
- return (await db.replies.where({ postId }).reverse().sortBy("date")).slice(
- -500,
- );
+ return await db.replies.where({ postId }).reverse().sortBy("date");
}
async getAllReplies(): Promise {
- return await db.replies.orderBy("date").reverse().limit(500).toArray();
+ return await db.replies.orderBy("date").reverse().toArray();
}
private async processUpdate(update: ReceivedStatusUpdate) {