-
{tagName}
-
-
+
+ {tagName}}
+ query={{ archived: false, tagId: tag.id }}
+ showEditorCard={true}
+ />
);
}
diff --git a/apps/web/components/dashboard/bookmarks/Bookmarks.tsx b/apps/web/components/dashboard/bookmarks/Bookmarks.tsx
index 96e5c067..cee620c9 100644
--- a/apps/web/components/dashboard/bookmarks/Bookmarks.tsx
+++ b/apps/web/components/dashboard/bookmarks/Bookmarks.tsx
@@ -4,16 +4,16 @@ import { getServerAuthSession } from "@/server/auth";
import type { ZGetBookmarksRequest } from "@hoarder/trpc/types/bookmarks";
-import BookmarksGrid from "./BookmarksGrid";
+import UpdatableBookmarksGrid from "./UpdatableBookmarksGrid";
export default async function Bookmarks({
- favourited,
- archived,
- title,
+ query,
+ header,
showDivider,
showEditorCard = false,
-}: ZGetBookmarksRequest & {
- title: string;
+}: {
+ query: ZGetBookmarksRequest;
+ header: React.ReactNode;
showDivider?: boolean;
showEditorCard?: boolean;
}) {
@@ -22,18 +22,13 @@ export default async function Bookmarks({
redirect("/");
}
- const query = {
- favourited,
- archived,
- };
-
const bookmarks = await api.bookmarks.getBookmarks(query);
return (
-
{title}
+ {header}
{showDivider &&
}
-
({}),
+ isFetchingNextPage = false,
showEditorCard = false,
}: {
- query: ZGetBookmarksRequest;
- bookmarks: ZGetBookmarksResponse;
+ bookmarks: ZBookmark[];
showEditorCard?: boolean;
- itemsPerPage?: number;
+ hasNextPage?: boolean;
+ isFetchingNextPage?: boolean;
+ fetchNextPage?: () => void;
}) {
- const { data, fetchNextPage, hasNextPage, isFetchingNextPage } =
- api.bookmarks.getBookmarks.useInfiniteQuery(query, {
- initialData: () => ({
- pages: [initialBookmarks],
- pageParams: [query.cursor],
- }),
- initialCursor: null,
- getNextPageParam: (lastPage) => lastPage.nextCursor,
- });
-
const breakpointConfig = useMemo(() => getBreakpointConfig(), []);
- const bookmarks = data!.pages.flatMap((b) => b.bookmarks);
if (bookmarks.length == 0 && !showEditorCard) {
return No bookmarks
;
}
diff --git a/apps/web/components/dashboard/bookmarks/UpdatableBookmarksGrid.tsx b/apps/web/components/dashboard/bookmarks/UpdatableBookmarksGrid.tsx
new file mode 100644
index 00000000..a344320e
--- /dev/null
+++ b/apps/web/components/dashboard/bookmarks/UpdatableBookmarksGrid.tsx
@@ -0,0 +1,41 @@
+"use client";
+
+import { api } from "@/lib/trpc";
+
+import type {
+ ZGetBookmarksRequest,
+ ZGetBookmarksResponse,
+} from "@hoarder/trpc/types/bookmarks";
+
+import BookmarksGrid from "./BookmarksGrid";
+
+export default function UpdatableBookmarksGrid({
+ query,
+ bookmarks: initialBookmarks,
+ showEditorCard = false,
+}: {
+ query: ZGetBookmarksRequest;
+ bookmarks: ZGetBookmarksResponse;
+ showEditorCard?: boolean;
+ itemsPerPage?: number;
+}) {
+ const { data, fetchNextPage, hasNextPage, isFetchingNextPage } =
+ api.bookmarks.getBookmarks.useInfiniteQuery(query, {
+ initialData: () => ({
+ pages: [initialBookmarks],
+ pageParams: [query.cursor],
+ }),
+ initialCursor: null,
+ getNextPageParam: (lastPage) => lastPage.nextCursor,
+ });
+
+ return (
+ b.bookmarks)}
+ hasNextPage={hasNextPage}
+ fetchNextPage={() => fetchNextPage()}
+ isFetchingNextPage={isFetchingNextPage}
+ showEditorCard={showEditorCard}
+ />
+ );
+}
--
cgit v1.2.3-70-g09d2