"use client"; import PromptpayImage from "#/assets/promptpay.jpg"; import { useFormContext } from "@/components/form"; import Image from "next/image"; import { useEffect, useState } from "react"; import QRCode from "react-qr-code"; import { generateQrcode } from "./api"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip"; export function DynamicPPQR() { const form = useFormContext(); const [current, setCurrent] = useState(form.values.amount as string); const [qrcode, setQrcode] = useState(""); const [changed, setChanged] = useState(false); useEffect(() => { const amount = form.values.amount as string; if (!amount || Number.isNaN(Number(amount))) { setCurrent(""); setQrcode(""); setChanged(false); return; } let timeout: any; generateQrcode(amount).then( (v) => ( setQrcode(v), setCurrent(amount), setChanged(true), (timeout = setTimeout(() => setChanged(false), 2000)) ), ); return () => clearTimeout(timeout); }, [form.values.amount]); return ( {form.values.amount ? ( current === form.values.amount ? (
) : (
Promptpay QR Code
) ) : ( Promptpay QR Code )}
จำนวน {current} บาท
); }