From e6486465decd612f7e437abe904960a47ff359ce Mon Sep 17 00:00:00 2001
From: kamtschatka <simon.schatka@gmx.at>
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 <me@mbassem.com>
---
 apps/web/components/dashboard/bookmarks/EditorCard.tsx | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

(limited to 'apps/web/components/dashboard/bookmarks/EditorCard.tsx')

diff --git a/apps/web/components/dashboard/bookmarks/EditorCard.tsx b/apps/web/components/dashboard/bookmarks/EditorCard.tsx
index a1055e8e..78bd0742 100644
--- a/apps/web/components/dashboard/bookmarks/EditorCard.tsx
+++ b/apps/web/components/dashboard/bookmarks/EditorCard.tsx
@@ -19,6 +19,7 @@ import { useForm } from "react-hook-form";
 import { z } from "zod";
 
 import { useCreateBookmarkWithPostHook } from "@hoarder/shared-react/hooks/bookmarks";
+import { BookmarkTypes } from "@hoarder/shared/types/bookmarks";
 
 import { useUploadAsset } from "../UploadDropzone";
 
@@ -99,7 +100,7 @@ export default function EditorCard({ className }: { className?: string }) {
 
     if (urls.length === 1) {
       // Only 1 url in the textfield --> simply import it
-      mutate({ type: "link", url: text });
+      mutate({ type: BookmarkTypes.LINK, url: text });
       return;
     }
     // multiple urls found --> ask the user if it should be imported as multiple URLs or as a text bookmark
@@ -128,7 +129,7 @@ export default function EditorCard({ className }: { className?: string }) {
       tryToImportUrls(text);
     } catch (e) {
       // Not a URL
-      mutate({ type: "text", text });
+      mutate({ type: BookmarkTypes.TEXT, text });
     }
   };
 
@@ -240,7 +241,10 @@ export default function EditorCard({ className }: { className?: string }) {
                   variant="secondary"
                   loading={isPending}
                   onClick={() => {
-                    mutate({ type: "text", text: multiUrlImportState.text });
+                    mutate({
+                      type: BookmarkTypes.TEXT,
+                      text: multiUrlImportState.text,
+                    });
                     setMultiUrlImportState(null);
                   }}
                 >
@@ -254,7 +258,7 @@ export default function EditorCard({ className }: { className?: string }) {
                   loading={isPending}
                   onClick={() => {
                     multiUrlImportState.urls.forEach((url) =>
-                      mutate({ type: "link", url: url.toString() }),
+                      mutate({ type: BookmarkTypes.LINK, url: url.toString() }),
                     );
                     setMultiUrlImportState(null);
                   }}
-- 
cgit v1.2.3-70-g09d2

