import { useEffect, useState } from "react"; import { joiResolver } from "@hookform/resolvers/joi"; import { Sheet } from "@tamagui/sheet"; import { useForm } from "react-hook-form"; import Toast from "react-native-toast-message"; import { Button, YStack } from "tamagui"; import { useUpdateBookmark } from "@/api/request/feed-management/bookmark"; import { Bookmark, BookmarkPayload, BookmarkPayloadSchema } from "@/api/schema/feed-management/bookmark"; import { ErrorResponse, safeMessage } from "@/api/shared"; import { FormSwitch } from "@/ui/components/controls/forms/Switch"; import { FormTextArea } from "@/ui/components/controls/forms/TextArea"; import { FormTextInput } from "@/ui/components/controls/forms/TextInput"; import { SubmitButton } from "@/ui/components/controls/SubmitButton"; type UpdateBookmarkSheetProps = { data: Bookmark; }; export const UpdateBookmarkSheet = (props: UpdateBookmarkSheetProps) => { const { data } = props; const { mutate, isPending } = useUpdateBookmark(data.id); const [open, setOpen] = useState(false); const { control, handleSubmit, formState, reset } = useForm({ resolver: joiResolver(BookmarkPayloadSchema), }); useEffect(() => { reset({ ...data }); }, [data, reset]); const onSubmit = (data: BookmarkPayload) => { mutate(data, { onSuccess: () => { Toast.show({ text1: "Félicitations !", text2: "Votre signet a été modifié avec succès.", type: "success", }); setOpen(false); }, onError: (error: ErrorResponse) => { Toast.show({ text1: "Erreur", text2: safeMessage(error), type: "error", }); }, }); }; return ( ); };