import { zodResolver } from "@hookform/resolvers/zod"; import { useSearchParams } from "@remix-run/react"; import { useState } from "react"; 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 { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "~/components/ui/select"; import { Separator } from "~/components/ui/separator"; import { useUpgradePlatinum } from "~/services/user/upgrade-platinum"; import { type TVerifyPayment, verifyPaymentSchema } from "~/types/api/verify-payment"; import VerifyDialog from "./components/verify-dialog"; export default function VerifikasiDompetPembayaranPage() { const [open, setOpen] = useState(false); const [searchParams] = useSearchParams(); const [nominal] = useState( searchParams.get("nominal") ? Number(searchParams.get("nominal")) : 1000000, ); const form = useForm({ resolver: zodResolver(verifyPaymentSchema), defaultValues: { bukti_pembayaran: null, no_rekening: "", nama_pemilik_rekening: "", nama_bank: "", nominal: nominal.toString(), }, }); const { mutateAsync } = useUpgradePlatinum(); async function onSubmit(data: TVerifyPayment) { try { await mutateAsync(data); setOpen(true); } catch (error) { if (error instanceof Error) { toast.error(error.message); } } } return (

Konfirmasi Pembayaran

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