import { zodResolver } from "@hookform/resolvers/zod"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; import DocumentUploader from "~/components/document-uploader"; import { Button } from "~/components/ui/button"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "~/components/ui/form"; import { Input } from "~/components/ui/input"; import RequiredIcon from "~/components/ui/required-icon"; import { Textarea } from "~/components/ui/textarea"; import { useGetProjectWalletByWalletId } from "~/services/project-wallet/get-by-wallet-id"; import { useTransferSaldo } from "~/services/project-wallet/transfer-saldo"; import { type TVerifyPayment, verifyPaymentSchema } from "~/types/api/verify-payment"; interface FirstSectionProps { id: string; } export default function FirstSection({ id }: FirstSectionProps) { const { data } = useGetProjectWalletByWalletId(id); const { mutateAsync } = useTransferSaldo(); const form = useForm< Pick >({ resolver: zodResolver( verifyPaymentSchema.pick({ id_proyek: true, deskripsi: true, nominal: true, bukti_transfer: true, }), ), defaultValues: { id_proyek: id || "", deskripsi: "", nominal: "", bukti_transfer: null, }, }); const onSubmit = async () => { try { await mutateAsync({ id_proyek: form.getValues("id_proyek"), deskripsi: form.getValues("deskripsi"), nominal: form.getValues("nominal"), bukti_transfer: form.getValues("bukti_transfer"), }); toast.success("Berhasil mengirimkan bukti transfer"); } catch (error) { toast.error("Gagal mengirimkan bukti transfer"); console.log(error); } }; const onError = (error: unknown) => { toast.error("Gagal mengirimkan bukti transfer"); console.log(error); }; return (

Upload Bukti Transfer

( Nominal Dana Transfer )} /> ( Deskripsi Penggunaan Dana