import { zodResolver } from "@hookform/resolvers/zod"; import { useState } from "react"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; import BackButton from "~/components/back-button"; 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 { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "~/components/ui/select"; import { Separator } from "~/components/ui/separator"; import { usePayMember } from "~/services/top-up/pay-member"; import { type TVerifyPayment, verifyPaymentSchema } from "~/types/api/verify-payment"; import VerifyDialog from "./components/verify-dialog"; export default function VerifikasiPembayaranPage() { const [open, setOpen] = useState(false); const { mutateAsync: payMember } = usePayMember(); const form = useForm({ resolver: zodResolver(verifyPaymentSchema), defaultValues: { bukti_pembayaran: null, no_rekening: "", nama_pemilik_rekening: "", nama_bank: "", }, }); async function onSubmit(data: TVerifyPayment) { try { await payMember(data); setOpen(true); } catch (error) { if (error instanceof Error) { toast.error(error.message); } } } return (

Konfirmasi Pembayaran

( Nama Pemilik Rekening )} /> ( No. Rekening )} /> ( Pilih Bank )} /> ( Upload Bukti Pembayaran field.onChange(files)} />
  • Unggah foto diri anda dengan format JPG, PNG, atau JPEG.
  • Maksimum size file 4 MB.
)} /> setOpen(open)} />
); }