import React from 'react' import { createFixedFloatNormalizer, currencyNormalizerCreator } from '../../normalizers' import { IPaymentPlanConfig } from '../../types/payment-plan-configuration' import { Checkbox } from '../common' interface PaymentPlanSectionProps { paymentPlanConfig: IPaymentPlanConfig; currency: string; paymentPlanUseSavedCard: boolean; setPaymentPlanUseSavedCard: (value: boolean) => void; } export const PaymentPlanSection = (props: PaymentPlanSectionProps) => { const { paymentPlanConfig, currency, paymentPlanUseSavedCard, setPaymentPlanUseSavedCard, } = props return (

Payment Plan Terms

By clicking on the “Confirm Payment Plan” button, you are starting your payment plan of{' '} {paymentPlanConfig.total_installments} {' '} payments of{' '} {currencyNormalizerCreator( createFixedFloatNormalizer(2)(paymentPlanConfig.price_per_installment), currency )} , which will be drawn from your account every {paymentPlanConfig.interval} days, with the first payment taken later today.
{paymentPlanConfig.has_admin_fee && (
This includes a non-refundable admin fee of{' '} {currencyNormalizerCreator( createFixedFloatNormalizer(2)(paymentPlanConfig.admin_fee), currency )} {' '} per payment.
)} {paymentPlanConfig.requires_deposit && (
You will also be charged a single, non-refundable deposit of{' '} {currencyNormalizerCreator( createFixedFloatNormalizer(2)(paymentPlanConfig.deposit), currency )} .
)}
NOTE: If today’s payment fails, your plan will not activate. Your tickets will not be issued until you complete your final payment.
{!paymentPlanConfig.non_refundable_type && (
If you do not complete your payments, your order will be canceled. Your{' '} first payment of{' '} {currencyNormalizerCreator( createFixedFloatNormalizer(2)(paymentPlanConfig.price_per_installment), currency )} {paymentPlanConfig.has_admin_fee && ( <> , plus the{' '} non-refundable admin-fee of{' '} {currencyNormalizerCreator( createFixedFloatNormalizer(2)(paymentPlanConfig.admin_fee), currency )} )}{' '} will not be refunded.
)} {paymentPlanConfig.non_refundable_type === 'percent' && (
If you do not complete your payments, you will receive{' '} {createFixedFloatNormalizer(0)( 100 - paymentPlanConfig.non_refundable_amount )} % {' '} of your money back {paymentPlanConfig.requires_deposit && ( <> , excluding your{' '} {currencyNormalizerCreator( createFixedFloatNormalizer(2)(paymentPlanConfig.deposit), currency )}{' '} deposit )} .
)} {paymentPlanConfig.non_refundable_type === 'fixed' && (
If you do not complete your payments, you will receive all your money back {paymentPlanConfig.non_refundable_amount && ( <> except for the non-refundable amount of{' '} {currencyNormalizerCreator( createFixedFloatNormalizer(2)(paymentPlanConfig.non_refundable_amount), currency )} {paymentPlanConfig.requires_deposit && ( <> , excluding your{' '} {currencyNormalizerCreator( createFixedFloatNormalizer(2)(paymentPlanConfig.deposit), currency )}{' '} deposit )} )} .
)} {!!paymentPlanConfig.saved_card?.stripe_payment_method_id && ( <> {paymentPlanUseSavedCard && (
{' '} Your payment will proceed with the card ending in ****{' '} {'' + paymentPlanConfig.saved_card.last_4_digits}
)}
Use this card} required={true} onChange={() => { setPaymentPlanUseSavedCard(!paymentPlanUseSavedCard) }} checked={paymentPlanUseSavedCard} />
)}
) }