From 4fae8f04f546d2b3f6053870d93385fa36af4742 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Fri, 9 Feb 2024 15:32:04 +0000 Subject: [ui] Adding the favourites and archive pages --- .../dashboard/bookmarks/components/Bookmarks.tsx | 38 ++++++++++++++++++++++ .../bookmarks/components/BookmarksGrid.tsx | 16 +++------ 2 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 packages/web/app/dashboard/bookmarks/components/Bookmarks.tsx (limited to 'packages/web/app/dashboard/bookmarks/components') diff --git a/packages/web/app/dashboard/bookmarks/components/Bookmarks.tsx b/packages/web/app/dashboard/bookmarks/components/Bookmarks.tsx new file mode 100644 index 00000000..6a9ffe1b --- /dev/null +++ b/packages/web/app/dashboard/bookmarks/components/Bookmarks.tsx @@ -0,0 +1,38 @@ +import { redirect } from "next/navigation"; +import BookmarksGrid from "./BookmarksGrid"; +import { authOptions } from "@/lib/auth"; +import { getServerSession } from "next-auth"; +import { getBookmarks } from "@/lib/services/bookmarks"; +import { ZGetBookmarksRequest } from "@/lib/types/api/bookmarks"; + +export default async function Bookmarks({ + favourited, + archived, + title, +}: ZGetBookmarksRequest & { title: string }) { + const session = await getServerSession(authOptions); + if (!session) { + redirect("/"); + } + const bookmarks = await getBookmarks(session.user.id, { + favourited, + archived, + }); + + if (bookmarks.length == 0) { + // TODO: This needs to be polished + return ( + <> +
{title}
+
No bookmarks
+ + ); + } + + return ( + <> +
{title}
+ + + ); +} diff --git a/packages/web/app/dashboard/bookmarks/components/BookmarksGrid.tsx b/packages/web/app/dashboard/bookmarks/components/BookmarksGrid.tsx index f52ef910..11845ca3 100644 --- a/packages/web/app/dashboard/bookmarks/components/BookmarksGrid.tsx +++ b/packages/web/app/dashboard/bookmarks/components/BookmarksGrid.tsx @@ -1,7 +1,3 @@ -import { getServerSession } from "next-auth"; -import { redirect } from "next/navigation"; -import { authOptions } from "@/lib/auth"; -import { getBookmarks } from "@/lib/services/bookmarks"; import LinkCard from "./LinkCard"; import { ZBookmark } from "@/lib/types/api/bookmarks"; @@ -12,13 +8,11 @@ function renderBookmark(bookmark: ZBookmark) { } } -export default async function BookmarksGrid() { - const session = await getServerSession(authOptions); - if (!session) { - redirect("/"); - } - const bookmarks = await getBookmarks(session.user.id); - +export default function BookmarksGrid({ + bookmarks, +}: { + bookmarks: ZBookmark[]; +}) { return (
{bookmarks.map((b) => renderBookmark(b))} -- cgit v1.2.3-70-g09d2