aboutsummaryrefslogtreecommitdiffstats
path: root/apps/mobile/components/bookmarks/BookmarkLinkView.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'apps/mobile/components/bookmarks/BookmarkLinkView.tsx')
-rw-r--r--apps/mobile/components/bookmarks/BookmarkLinkView.tsx35
1 files changed, 35 insertions, 0 deletions
diff --git a/apps/mobile/components/bookmarks/BookmarkLinkView.tsx b/apps/mobile/components/bookmarks/BookmarkLinkView.tsx
new file mode 100644
index 00000000..e8a78029
--- /dev/null
+++ b/apps/mobile/components/bookmarks/BookmarkLinkView.tsx
@@ -0,0 +1,35 @@
+import {
+ BookmarkLinkArchivePreview,
+ BookmarkLinkBrowserPreview,
+ BookmarkLinkReaderPreview,
+ BookmarkLinkScreenshotPreview,
+} from "@/components/bookmarks/BookmarkLinkPreview";
+
+import { BookmarkTypes, ZBookmark } from "@karakeep/shared/types/bookmarks";
+
+import { BookmarkLinkType } from "./BookmarkLinkTypeSelector";
+
+interface BookmarkLinkViewProps {
+ bookmark: ZBookmark;
+ bookmarkPreviewType: BookmarkLinkType;
+}
+
+export default function BookmarkLinkView({
+ bookmark,
+ bookmarkPreviewType,
+}: BookmarkLinkViewProps) {
+ if (bookmark.content.type !== BookmarkTypes.LINK) {
+ throw new Error("Wrong content type rendered");
+ }
+
+ switch (bookmarkPreviewType) {
+ case "browser":
+ return <BookmarkLinkBrowserPreview bookmark={bookmark} />;
+ case "reader":
+ return <BookmarkLinkReaderPreview bookmark={bookmark} />;
+ case "screenshot":
+ return <BookmarkLinkScreenshotPreview bookmark={bookmark} />;
+ case "archive":
+ return <BookmarkLinkArchivePreview bookmark={bookmark} />;
+ }
+}