import MainButton from "@/components/MainButton"; import { useEffect } from "react"; import styles from "./styles.module.scss"; import { usePayment } from "@/hooks/payment/nmi/usePayment"; import { EPlacementKeys, IPaywallProduct } from "@/api/resources/Paywall"; import SecurityPayments from "../../SecurityPayments"; export type TConfirmType = "payment" | "setup"; interface ICheckoutFormProps { subscriptionReceiptId?: string; returnUrl?: string; confirmType?: TConfirmType; isHide?: boolean; placementKey: EPlacementKeys; activeProduct: IPaywallProduct; isAnonymous?: boolean; sessionId?: string; onSuccess?: () => void; onError?: (error?: string) => void; onModalClosed?: () => void; } export default function CheckoutForm({ placementKey, activeProduct, isAnonymous = false, sessionId = "", onError, onSuccess, onModalClosed, isHide = false, }: ICheckoutFormProps) { const { isLoading, error, isPaymentSuccess, submitInlineForm, formValidation, isFormValid, isModalClosed } = usePayment({ placementKey, activeProduct, paymentFormType: "inline", isAnonymous, sessionId }); useEffect(() => { if (error && onError) { console.log(error); onError(error); } }, [error]); useEffect(() => { if (isModalClosed && onModalClosed) { onModalClosed(); } }, [isModalClosed, onModalClosed]); useEffect(() => { if (isPaymentSuccess && onSuccess) { onSuccess(); } }, [isPaymentSuccess]); const handleSubmit = (e: React.FormEvent | React.MouseEvent) => { e.preventDefault(); if (!isFormValid) { return; } submitInlineForm(); }; return (
card
{formValidation.ccnumber.message && (
{formValidation.ccnumber.message}
)}
{formValidation.ccexp.message && (
{formValidation.ccexp.message}
)}
{formValidation.cvv.message && (
{formValidation.cvv.message}
)}
Secure {isLoading ? "Processing..." : "Pay Now"} ); }