All files / app/order OrderSummarySubtotals.tsx

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113  8x   8x   8x 8x                               8x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x   13x                   18x                                   5x                                                               13x                               8x  
import { Coupon, GiftCertificate, Tax } from '@bigcommerce/checkout-sdk';
import React, { memo, Fragment, FunctionComponent } from 'react';
 
import { TranslatedString } from '../locale';
 
import OrderSummaryDiscount from './OrderSummaryDiscount';
import OrderSummaryPrice from './OrderSummaryPrice';
 
export interface OrderSummarySubtotalsProps {
    coupons: Coupon[];
    giftCertificates?: GiftCertificate[];
    discountAmount?: number;
    taxes?: Tax[];
    giftWrappingAmount?: number;
    shippingAmount?: number;
    handlingAmount?: number;
    storeCreditAmount?: number;
    subtotalAmount: number;
    onRemovedGiftCertificate?(code: string): void;
    onRemovedCoupon?(code: string): void;
}
 
const OrderSummarySubtotals: FunctionComponent<OrderSummarySubtotalsProps> = ({
    discountAmount,
    giftCertificates,
    taxes,
    giftWrappingAmount,
    shippingAmount,
    subtotalAmount,
    handlingAmount,
    storeCreditAmount,
    coupons,
    onRemovedGiftCertificate,
    onRemovedCoupon,
}) => {
    return (<Fragment>
        <OrderSummaryPrice
            amount={ subtotalAmount }
            className="cart-priceItem--subtotal"
            label={ <TranslatedString id="cart.subtotal_text" /> }
            testId="cart-subtotal"
        />
 
        { (coupons || [])
            .map((coupon, index) =>
                <OrderSummaryDiscount
                    amount={ coupon.discountedAmount }
                    code={ coupon.code }
                    key={ index }
                    label={ coupon.displayName }
                    onRemoved={ onRemovedCoupon }
                    testId="cart-coupon"
                />
        ) }
 
        { !!discountAmount && <OrderSummaryDiscount
            amount={ discountAmount }
            label={ <TranslatedString id="cart.discount_text" /> }
            testId="cart-discount"
        /> }
 
        { (giftCertificates || [])
            .map((giftCertificate, index) =>
                <OrderSummaryDiscount
                    amount={ giftCertificate.used }
                    code={ giftCertificate.code }
                    key={ index }
                    label={ <TranslatedString id="cart.gift_certificate_text" /> }
                    onRemoved={ onRemovedGiftCertificate }
                    remaining={ giftCertificate.remaining }
                    testId="cart-gift-certificate"
                />
        ) }
 
        { !!giftWrappingAmount && <OrderSummaryPrice
            amount={ giftWrappingAmount }
            label={ <TranslatedString id="cart.gift_wrapping_text" /> }
            testId="cart-gift-wrapping"
        /> }
 
        <OrderSummaryPrice
            amount={ shippingAmount }
            label={ <TranslatedString id="cart.shipping_text" /> }
            testId="cart-shipping"
            zeroLabel={ <TranslatedString id="cart.free_text" /> }
        />
 
        { !!handlingAmount && <OrderSummaryPrice
            amount={ handlingAmount }
            label={ <TranslatedString id="cart.handling_text" /> }
            testId="cart-handling"
        /> }
 
        { (taxes || [])
            .map((tax, index) =>
                <OrderSummaryPrice
                    amount={ tax.amount }
                    key={ index }
                    label={ tax.name }
                    testId="cart-taxes"
                />
         ) }
 
        { !!storeCreditAmount && <OrderSummaryDiscount
            amount={ storeCreditAmount }
            label={ <TranslatedString id="cart.store_credit_text" /> }
            testId="cart-store-credit"
        /> }
    </Fragment>);
};
 
export default memo(OrderSummarySubtotals);