From 07b4299f5c865f1879db0b8cef2a95cfde91b1a9 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Wed, 13 Mar 2024 02:57:58 +0000 Subject: mobile: Add support for rendering text bookmarks --- .../mobile/components/bookmarks/BookmarkCard.tsx | 49 ++++++++++++++++------ 1 file changed, 37 insertions(+), 12 deletions(-) (limited to 'packages/mobile/components') diff --git a/packages/mobile/components/bookmarks/BookmarkCard.tsx b/packages/mobile/components/bookmarks/BookmarkCard.tsx index 17e675df..57e601f7 100644 --- a/packages/mobile/components/bookmarks/BookmarkCard.tsx +++ b/packages/mobile/components/bookmarks/BookmarkCard.tsx @@ -2,6 +2,7 @@ import { ZBookmark } from "@hoarder/trpc/types/bookmarks"; import { ZBookmarkTags } from "@hoarder/trpc/types/tags"; import { Star, Archive, Trash } from "lucide-react-native"; import { View, Text, Image, ScrollView, Pressable } from "react-native"; +import Markdown from "react-native-markdown-display"; import { api } from "@/lib/trpc"; @@ -65,7 +66,10 @@ function TagList({ tags }: { tags: ZBookmarkTags[] }) { {tags.map((t) => ( - + {t.name} ))} @@ -82,25 +86,41 @@ function LinkCard({ bookmark }: { bookmark: ZBookmark }) { const parsedUrl = new URL(bookmark.content.url); return ( - + - - {bookmark.content.title || parsedUrl.host} - - - - {parsedUrl.host} - + + + {bookmark.content.title || parsedUrl.host} + + + + {parsedUrl.host} + + ); } function TextCard({ bookmark }: { bookmark: ZBookmark }) { - return ; + if (bookmark.content.type !== "text") { + throw new Error("Wrong content type rendered"); + } + return ( + + + {bookmark.content.text} + + + + + + + + ); } export default function BookmarkCard({ @@ -115,10 +135,15 @@ export default function BookmarkCard({ { initialData }, ); + let comp; switch (bookmark.content.type) { case "link": - return ; + comp = ; + break; case "text": - return ; + comp = ; + break; } + + return {comp}; } -- cgit v1.2.3-70-g09d2