woocommerce/plugins/woocommerce-blocks/assets/js/blocks/cart-checkout/checkout/sidebar/index.js

79 lines
1.8 KiB
JavaScript

/**
* External dependencies
*/
import {
OrderSummary,
SubtotalsItem,
TotalsFeesItem,
TotalsCouponCodeInput,
TotalsDiscountItem,
TotalsFooterItem,
TotalsShippingItem,
TotalsTaxesItem,
} from '@woocommerce/base-components/cart-checkout';
import { useShippingDataContext } from '@woocommerce/base-context';
import { getCurrencyFromPriceResponse } from '@woocommerce/base-utils';
import {
COUPONS_ENABLED,
DISPLAY_CART_PRICES_INCLUDING_TAX,
} from '@woocommerce/block-settings';
import { useStoreCartCoupons } from '@woocommerce/base-hooks';
const CheckoutSidebar = ( {
cartCoupons = [],
cartItems = [],
cartTotals = {},
} ) => {
const {
applyCoupon,
removeCoupon,
isApplyingCoupon,
isRemovingCoupon,
} = useStoreCartCoupons();
const { needsShipping } = useShippingDataContext();
const totalsCurrency = getCurrencyFromPriceResponse( cartTotals );
return (
<>
<OrderSummary cartItems={ cartItems } />
<SubtotalsItem currency={ totalsCurrency } values={ cartTotals } />
<TotalsFeesItem currency={ totalsCurrency } values={ cartTotals } />
<TotalsDiscountItem
cartCoupons={ cartCoupons }
currency={ totalsCurrency }
isRemovingCoupon={ isRemovingCoupon }
removeCoupon={ removeCoupon }
values={ cartTotals }
/>
{ needsShipping && (
<TotalsShippingItem
showCalculator={ false }
showRateSelector={ false }
values={ cartTotals }
currency={ totalsCurrency }
/>
) }
{ ! DISPLAY_CART_PRICES_INCLUDING_TAX && (
<TotalsTaxesItem
currency={ totalsCurrency }
values={ cartTotals }
/>
) }
{ COUPONS_ENABLED && (
<TotalsCouponCodeInput
onSubmit={ applyCoupon }
initialOpen={ false }
isLoading={ isApplyingCoupon }
/>
) }
<TotalsFooterItem
currency={ totalsCurrency }
values={ cartTotals }
/>
</>
);
};
export default CheckoutSidebar;