"use client"; import { FormEvent, useMemo, useState, useTransition } from "react"; import { createPaymentMethodAction } from "@/actions/payment-methods"; import { PAYMENT_METHOD_LABELS, PAYMENT_METHOD_TYPES, USDT_NETWORKS } from "@/lib/constants"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Select } from "@/components/ui/select"; import { Textarea } from "@/components/ui/textarea"; export function PaymentMethodsForm() { const [isPending, startTransition] = useTransition(); const [message, setMessage] = useState(null); const [isError, setIsError] = useState(false); const [type, setType] = useState<(typeof PAYMENT_METHOD_TYPES)[number]>("PAYPAL"); const [label, setLabel] = useState(""); const [value, setValue] = useState(""); const [network, setNetwork] = useState(""); const [description, setDescription] = useState(""); const [isVisible, setIsVisible] = useState(true); const isUsdt = useMemo(() => type === "USDT", [type]); function resetForm() { setLabel(""); setValue(""); setNetwork(""); setDescription(""); setIsVisible(true); } function onSubmit(event: FormEvent) { event.preventDefault(); setMessage(null); const formData = new FormData(); formData.set("type", type); formData.set("label", label); formData.set("value", value); formData.set("network", network); formData.set("description", description); if (isVisible) { formData.set("isVisible", "on"); } startTransition(async () => { const result = await createPaymentMethodAction(formData); setMessage(result.message); setIsError(!result.success); if (result.success) { resetForm(); } }); } return (

Add Payment Method