aboutsummaryrefslogtreecommitdiffstats
path: root/apps/mobile/components/bookmarks/NewBookmarkModal.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'apps/mobile/components/bookmarks/NewBookmarkModal.tsx')
-rw-r--r--apps/mobile/components/bookmarks/NewBookmarkModal.tsx71
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>