aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-03-17 10:15:01 +0000
committerMohamedBassem <me@mbassem.com>2024-03-17 10:22:38 +0000
commitc2bd6d6b33dc24c4321228add4fedfade93eb014 (patch)
tree6a3d52dbea3143cb95049293e06ef4a1b4efcdeb /apps/web
parent0b99fe783aaebc5baca40f9d1b837278811cd228 (diff)
downloadkarakeep-c2bd6d6b33dc24c4321228add4fedfade93eb014.tar.zst
refactor: Prepare for pagination by dropping querying bookmarks by id
Diffstat (limited to 'apps/web')
-rw-r--r--apps/web/app/dashboard/lists/[listId]/page.tsx12
-rw-r--r--apps/web/app/dashboard/tags/[tagName]/page.tsx2
-rw-r--r--apps/web/components/dashboard/bookmarks/AddToListModal.tsx5
-rw-r--r--apps/web/components/dashboard/bookmarks/TagsEditor.tsx1
-rw-r--r--apps/web/components/dashboard/lists/ListView.tsx26
5 files changed, 13 insertions, 33 deletions
diff --git a/apps/web/app/dashboard/lists/[listId]/page.tsx b/apps/web/app/dashboard/lists/[listId]/page.tsx
index 4e35c377..b9a26053 100644
--- a/apps/web/app/dashboard/lists/[listId]/page.tsx
+++ b/apps/web/app/dashboard/lists/[listId]/page.tsx
@@ -1,6 +1,6 @@
import { notFound, redirect } from "next/navigation";
+import BookmarksGrid from "@/components/dashboard/bookmarks/BookmarksGrid";
import DeleteListButton from "@/components/dashboard/lists/DeleteListButton";
-import ListView from "@/components/dashboard/lists/ListView";
import { api } from "@/server/api/client";
import { getServerAuthSession } from "@/server/auth";
import { TRPCError } from "@trpc/server";
@@ -27,7 +27,10 @@ export default async function ListPage({
throw e;
}
- const bookmarks = await api.bookmarks.getBookmarks({ ids: list.bookmarks });
+ const bookmarks = await api.bookmarks.getBookmarks({
+ listId: list.id,
+ archived: false,
+ });
return (
<div className="container flex flex-col gap-3">
@@ -38,7 +41,10 @@ export default async function ListPage({
<DeleteListButton list={list} />
</div>
<hr />
- <ListView list={list} bookmarks={bookmarks.bookmarks} />
+ <BookmarksGrid
+ query={{ listId: list.id, archived: false }}
+ bookmarks={bookmarks.bookmarks}
+ />
</div>
);
}
diff --git a/apps/web/app/dashboard/tags/[tagName]/page.tsx b/apps/web/app/dashboard/tags/[tagName]/page.tsx
index 0c5c1c1f..dee29c5e 100644
--- a/apps/web/app/dashboard/tags/[tagName]/page.tsx
+++ b/apps/web/app/dashboard/tags/[tagName]/page.tsx
@@ -28,8 +28,8 @@ export default async function TagPage({
}
const query = {
- ids: tag.bookmarks,
archived: false,
+ tagId: tag.id,
};
const bookmarks = await api.bookmarks.getBookmarks(query);
diff --git a/apps/web/components/dashboard/bookmarks/AddToListModal.tsx b/apps/web/components/dashboard/bookmarks/AddToListModal.tsx
index 6242aa27..b8cce66d 100644
--- a/apps/web/components/dashboard/bookmarks/AddToListModal.tsx
+++ b/apps/web/components/dashboard/bookmarks/AddToListModal.tsx
@@ -52,7 +52,6 @@ export default function AddToListModal({
const { data: lists, isPending: isFetchingListsPending } =
api.lists.list.useQuery();
- const listInvalidationFunction = api.useUtils().lists.get.invalidate;
const bookmarksInvalidationFunction =
api.useUtils().bookmarks.getBookmarks.invalidate;
@@ -62,8 +61,8 @@ export default function AddToListModal({
toast({
description: "List has been updated!",
});
- listInvalidationFunction({ listId: req.listId });
- bookmarksInvalidationFunction();
+ setOpen(false);
+ bookmarksInvalidationFunction({ listId: req.listId });
},
onError: (e) => {
if (e.data?.code == "BAD_REQUEST") {
diff --git a/apps/web/components/dashboard/bookmarks/TagsEditor.tsx b/apps/web/components/dashboard/bookmarks/TagsEditor.tsx
index 8bfbce19..12c0dcd0 100644
--- a/apps/web/components/dashboard/bookmarks/TagsEditor.tsx
+++ b/apps/web/components/dashboard/bookmarks/TagsEditor.tsx
@@ -75,6 +75,7 @@ export function TagsEditor({ bookmark }: { bookmark: ZBookmark }) {
description: "Tags has been updated!",
});
bookmarkInvalidationFunction({ bookmarkId: bookmark.id });
+ // TODO(bug) Invalidate the tag views as well
},
onError: () => {
toast({
diff --git a/apps/web/components/dashboard/lists/ListView.tsx b/apps/web/components/dashboard/lists/ListView.tsx
deleted file mode 100644
index beeea7f1..00000000
--- a/apps/web/components/dashboard/lists/ListView.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-"use client";
-
-import BookmarksGrid from "@/components/dashboard/bookmarks/BookmarksGrid";
-import { api } from "@/lib/trpc";
-
-import type { ZBookmark } from "@hoarder/trpc/types/bookmarks";
-import type { ZBookmarkListWithBookmarks } from "@hoarder/trpc/types/lists";
-
-export default function ListView({
- bookmarks,
- list: initialData,
-}: {
- list: ZBookmarkListWithBookmarks;
- bookmarks: ZBookmark[];
-}) {
- const { data } = api.lists.get.useQuery(
- { listId: initialData.id },
- {
- initialData,
- },
- );
-
- return (
- <BookmarksGrid query={{ ids: data.bookmarks }} bookmarks={bookmarks} />
- );
-}