From b094b2cecb0da1bcdf4c63dd081638d87793c53c Mon Sep 17 00:00:00 2001
From: MohamedBassem <me@mbassem.com>
Date: Mon, 26 Aug 2024 13:41:13 +0300
Subject: feature(mobile): Change the view bookmark page to be a modal and add
 tags and notes

---
 .../components/bookmarks/NewBookmarkModal.tsx      | 71 ++++------------------
 1 file changed, 12 insertions(+), 59 deletions(-)

(limited to 'apps/mobile/components/bookmarks/NewBookmarkModal.tsx')

diff --git a/apps/mobile/components/bookmarks/NewBookmarkModal.tsx b/apps/mobile/components/bookmarks/NewBookmarkModal.tsx
index 8ac8bb39..6915c663 100644
--- a/apps/mobile/components/bookmarks/NewBookmarkModal.tsx
+++ b/apps/mobile/components/bookmarks/NewBookmarkModal.tsx
@@ -1,51 +1,31 @@
-import React, { useEffect, useState } from "react";
+import React, { useState } from "react";
 import { Text, View } from "react-native";
 import {
   BottomSheetBackdrop,
   BottomSheetModal,
   BottomSheetModalProps,
-  BottomSheetTextInput,
   BottomSheetView,
   useBottomSheetModal,
 } from "@gorhom/bottom-sheet";
 
-import {
-  useCreateBookmark,
-  useUpdateBookmarkText,
-} from "@hoarder/shared-react/hooks/bookmarks";
-import { BookmarkTypes, ZBookmark } from "@hoarder/shared/types/bookmarks";
+import { useCreateBookmark } from "@hoarder/shared-react/hooks/bookmarks";
+import { BookmarkTypes } from "@hoarder/shared/types/bookmarks";
 
 import { Button } from "../ui/Button";
+import { Input } from "../ui/Input";
 import PageTitle from "../ui/PageTitle";
 
 const NoteEditorModal = React.forwardRef<
   BottomSheetModal,
-  Omit<
-    BottomSheetModalProps,
-    "children" | "backdropComponent" | "onDismiss"
-  > & {
-    bookmark?: ZBookmark;
-  }
->(({ bookmark, ...props }, ref) => {
+  Omit<BottomSheetModalProps, "children" | "backdropComponent" | "onDismiss">
+>(({ ...props }, ref) => {
   const { dismiss } = useBottomSheetModal();
-  const isEditing = !!bookmark;
 
   const [text, setText] = useState("");
   const [error, setError] = useState<string | undefined>();
 
-  const resetText = () => {
-    if (bookmark) {
-      if (bookmark.content.type !== BookmarkTypes.TEXT) {
-        throw new Error("Wrong content type rendered");
-      }
-      setText(bookmark.content.text);
-    }
-  };
-
-  useEffect(resetText, []);
-
   const onSuccess = () => {
-    resetText();
+    setText("");
     dismiss();
   };
 
@@ -63,31 +43,6 @@ const NoteEditorModal = React.forwardRef<
     },
   });
 
-  const { mutate: updateBookmark } = useUpdateBookmarkText({
-    onSuccess,
-    onError: (e) => {
-      let message;
-      if (e.data?.zodError) {
-        const zodError = e.data.zodError;
-        message = JSON.stringify(zodError);
-      } else {
-        message = `Something went wrong: ${e.message}`;
-      }
-      setError(message);
-    },
-  });
-
-  const mutate = (text: string) => {
-    if (isEditing) {
-      updateBookmark({
-        bookmarkId: bookmark.id,
-        text,
-      });
-    } else {
-      createBookmark({ type: BookmarkTypes.TEXT, text });
-    }
-  };
-
   return (
     <View>
       <BottomSheetModal
@@ -101,23 +56,21 @@ const NoteEditorModal = React.forwardRef<
         )}
         {...props}
       >
-        <PageTitle title={isEditing ? "Edit Note" : "New Note"} />
-        <BottomSheetView className="p-4">
+        <PageTitle title="New Note" />
+        <BottomSheetView className="gap-2 p-4">
           {error && (
             <Text className="w-full text-center text-red-500">{error}</Text>
           )}
-          <BottomSheetTextInput
-            value={text}
+          <Input
             onChangeText={setText}
             multiline
-            numberOfLines={8}
             placeholder="What's on your mind?"
             autoFocus
             textAlignVertical="top"
           />
           <Button
-            onPress={() => mutate(text)}
-            label={isEditing ? "Save" : "Add Note"}
+            onPress={() => createBookmark({ type: BookmarkTypes.TEXT, text })}
+            label="Add Note"
           />
         </BottomSheetView>
       </BottomSheetModal>
-- 
cgit v1.2.3-70-g09d2

