From b8b0a444139358bdf7707034e3a7437babc69db8 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Tue, 5 Mar 2024 02:26:10 +0000 Subject: feature: Preview page for the stored content of links --- .../app/dashboard/preview/[bookmarkId]/page.tsx | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 packages/web/app/dashboard/preview/[bookmarkId]/page.tsx (limited to 'packages/web/app/dashboard/preview') diff --git a/packages/web/app/dashboard/preview/[bookmarkId]/page.tsx b/packages/web/app/dashboard/preview/[bookmarkId]/page.tsx new file mode 100644 index 00000000..030ad2df --- /dev/null +++ b/packages/web/app/dashboard/preview/[bookmarkId]/page.tsx @@ -0,0 +1,64 @@ +import { BackButton } from "@/components/ui/back-button"; +import { api } from "@/server/api/client"; +import { ArrowLeftCircle, CalendarDays, ExternalLink } from "lucide-react"; +import Link from "next/link"; +import Markdown from "react-markdown"; + +export default async function BookmarkPreviewPage({ + params, +}: { + params: { bookmarkId: string }; +}) { + const bookmark = await api.bookmarks.getBookmark({ + bookmarkId: params.bookmarkId, + }); + + const linkHeader = bookmark.content.type == "link" && ( +
+

{bookmark.content.title}

+ + View Original + + +
+ ); + + let content; + switch (bookmark.content.type) { + case "link": { + content = ( +
+ ); + break; + } + case "text": { + content = {bookmark.content.text}; + break; + } + } + + return ( +
+
+ + + +
+ + {bookmark.createdAt.toLocaleString()} + +
+
+
+ {linkHeader} +
+ {content} +
+
+ ); +} -- cgit v1.2.3-70-g09d2