From e6486465decd612f7e437abe904960a47ff359ce Mon Sep 17 00:00:00 2001 From: kamtschatka Date: Mon, 1 Jul 2024 13:03:53 +0200 Subject: refactor: added the bookmark type to the database (#256) * refactoring asset types Extracted out functions to silently delete assets and to update them after crawling Generalized the mapping of assets to bookmark fields to make extending them easier * Added the bookmark type to the database Introduced an enum to have better type safety cleaned up the code and based some code on the type directly * add BookmarkType.UNKNWON * lint and remove unused function --------- Co-authored-by: MohamedBassem --- apps/mobile/components/bookmarks/BookmarkCard.tsx | 13 +++++++------ apps/mobile/components/bookmarks/UpdatingBookmarkList.tsx | 3 ++- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'apps/mobile/components') diff --git a/apps/mobile/components/bookmarks/BookmarkCard.tsx b/apps/mobile/components/bookmarks/BookmarkCard.tsx index 128696a1..8faa8618 100644 --- a/apps/mobile/components/bookmarks/BookmarkCard.tsx +++ b/apps/mobile/components/bookmarks/BookmarkCard.tsx @@ -26,6 +26,7 @@ import { isBookmarkStillLoading, isBookmarkStillTagging, } from "@hoarder/shared-react/utils/bookmarkUtils"; +import { BookmarkTypes } from "@hoarder/shared/types/bookmarks"; import { TailwindResolver } from "../TailwindResolver"; import { Divider } from "../ui/Divider"; @@ -161,7 +162,7 @@ function TagList({ bookmark }: { bookmark: ZBookmark }) { function LinkCard({ bookmark }: { bookmark: ZBookmark }) { const { settings } = useAppSettings(); - if (bookmark.content.type !== "link") { + if (bookmark.content.type !== BookmarkTypes.LINK) { throw new Error("Wrong content type rendered"); } @@ -223,7 +224,7 @@ function LinkCard({ bookmark }: { bookmark: ZBookmark }) { } function TextCard({ bookmark }: { bookmark: ZBookmark }) { - if (bookmark.content.type !== "text") { + if (bookmark.content.type !== BookmarkTypes.TEXT) { throw new Error("Wrong content type rendered"); } const content = bookmark.content.text; @@ -262,7 +263,7 @@ function TextCard({ bookmark }: { bookmark: ZBookmark }) { function AssetCard({ bookmark }: { bookmark: ZBookmark }) { const { settings } = useAppSettings(); - if (bookmark.content.type !== "asset") { + if (bookmark.content.type !== BookmarkTypes.ASSET) { throw new Error("Wrong content type rendered"); } const title = bookmark.title ?? bookmark.content.fileName; @@ -322,13 +323,13 @@ export default function BookmarkCard({ let comp; switch (bookmark.content.type) { - case "link": + case BookmarkTypes.LINK: comp = ; break; - case "text": + case BookmarkTypes.TEXT: comp = ; break; - case "asset": + case BookmarkTypes.ASSET: comp = ; break; } diff --git a/apps/mobile/components/bookmarks/UpdatingBookmarkList.tsx b/apps/mobile/components/bookmarks/UpdatingBookmarkList.tsx index 54288362..87f115f9 100644 --- a/apps/mobile/components/bookmarks/UpdatingBookmarkList.tsx +++ b/apps/mobile/components/bookmarks/UpdatingBookmarkList.tsx @@ -2,6 +2,7 @@ import { Text } from "react-native"; import { api } from "@/lib/trpc"; import type { ZGetBookmarksRequest } from "@hoarder/shared/types/bookmarks"; +import { BookmarkTypes } from "@hoarder/shared/types/bookmarks"; import FullPageSpinner from "../ui/FullPageSpinner"; import BookmarkList from "./BookmarkList"; @@ -46,7 +47,7 @@ export default function UpdatingBookmarkList({ p.bookmarks) - .filter((b) => b.content.type != "unknown")} + .filter((b) => b.content.type != BookmarkTypes.UNKNWON)} header={header} onRefresh={onRefresh} fetchNextPage={fetchNextPage} -- cgit v1.2.3-70-g09d2