woocommerce/plugins/woocommerce-blocks/packages/checkout/shipping/shipping-rates-control/render-package-rate-option.js

43 lines
1.1 KiB
JavaScript

/**
* External dependencies
*/
import { decodeEntities } from '@wordpress/html-entities';
import { DISPLAY_CART_PRICES_INCLUDING_TAX } from '@woocommerce/block-settings';
import FormattedMonetaryAmount from '@woocommerce/base-components/formatted-monetary-amount';
/**
* Internal dependencies
*/
import { getCurrencyFromPriceResponse } from '../../utils';
/**
* Default render function for package rate options.
*
* @param {Object} option Option data.
*/
export const renderPackageRateOption = ( option ) => {
const priceWithTaxes = DISPLAY_CART_PRICES_INCLUDING_TAX
? parseInt( option.price, 10 ) + parseInt( option.taxes, 10 )
: parseInt( option.price, 10 );
return {
label: decodeEntities( option.name ),
value: option.rate_id,
description: (
<>
{ Number.isFinite( priceWithTaxes ) && (
<FormattedMonetaryAmount
currency={ getCurrencyFromPriceResponse( option ) }
value={ priceWithTaxes }
/>
) }
{ Number.isFinite( priceWithTaxes ) && option.delivery_time
? ' — '
: null }
{ decodeEntities( option.delivery_time ) }
</>
),
};
};
export default renderPackageRateOption;