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 ++++++++++++++++------ packages/mobile/package.json | 1 + 2 files changed, 38 insertions(+), 12 deletions(-) (limited to 'packages') 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}; } diff --git a/packages/mobile/package.json b/packages/mobile/package.json index bbc0127c..613bb3c3 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -26,6 +26,7 @@ "nativewind": "^4.0.1", "react": "18.2.0", "react-native": "0.73.4", + "react-native-markdown-display": "^7.0.2", "react-native-reanimated": "^3.8.0", "react-native-safe-area-context": "4.8.2", "react-native-screens": "~3.29.0", -- cgit v1.2.3-70-g09d2