diff options
Diffstat (limited to 'apps/mobile/components/bookmarks/NewBookmarkModal.tsx')
| -rw-r--r-- | apps/mobile/components/bookmarks/NewBookmarkModal.tsx | 71 |
1 files changed, 12 insertions, 59 deletions
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> |
