aboutsummaryrefslogtreecommitdiffstats
path: root/packages/web/app/dashboard/bookmarks/components
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-02-09 15:32:04 +0000
committerMohamedBassem <me@mbassem.com>2024-02-09 15:32:04 +0000
commit4fae8f04f546d2b3f6053870d93385fa36af4742 (patch)
treefbf91f3c3c3d2bd85e9e4cfc8200d275a78fb700 /packages/web/app/dashboard/bookmarks/components
parentb25f17509e704eb41523bf455a33804cabf8aaca (diff)
downloadkarakeep-4fae8f04f546d2b3f6053870d93385fa36af4742.tar.zst
[ui] Adding the favourites and archive pages
Diffstat (limited to 'packages/web/app/dashboard/bookmarks/components')
-rw-r--r--packages/web/app/dashboard/bookmarks/components/Bookmarks.tsx38
-rw-r--r--packages/web/app/dashboard/bookmarks/components/BookmarksGrid.tsx16
2 files changed, 43 insertions, 11 deletions
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 (
+ <>
+ <div className="container pb-4 text-2xl">{title}</div>
+ <div className="container">No bookmarks</div>
+ </>
+ );
+ }
+
+ return (
+ <>
+ <div className="container pb-4 text-2xl">{title}</div>
+ <BookmarksGrid bookmarks={bookmarks} />
+ </>
+ );
+}
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 (
<div className="container grid grid-cols-1 gap-4 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4">
{bookmarks.map((b) => renderBookmark(b))}