/* eslint-disable no-nested-ternary */
/**
* External dependencies
*/
import { __ } from '@wordpress/i18n';
import { getSetting } from '@woocommerce/settings';
import { createInterpolateElement } from '@wordpress/element';
import { getCurrencyFromPriceResponse } from '@woocommerce/price-format';
import FormattedMonetaryAmount from '@woocommerce/base-components/formatted-monetary-amount';
import type { CartShippingPackageShippingRate } from '@woocommerce/type-defs/cart';
export const RatePrice = ( {
minRate,
maxRate,
multiple = false,
}: {
minRate: CartShippingPackageShippingRate | undefined;
maxRate: CartShippingPackageShippingRate | undefined;
multiple?: boolean;
} ) => {
if ( minRate === undefined || maxRate === undefined ) {
return null;
}
const minRatePrice = getSetting( 'displayCartPricesIncludingTax', false )
? parseInt( minRate.price, 10 ) + parseInt( minRate.taxes, 10 )
: parseInt( minRate.price, 10 );
const maxRatePrice = getSetting( 'displayCartPricesIncludingTax', false )
? parseInt( maxRate.price, 10 ) + parseInt( maxRate.taxes, 10 )
: parseInt( maxRate.price, 10 );
const priceElement =
minRatePrice === 0 ? (
{ __( 'free', 'woo-gutenberg-products-block' ) }
) : (
);
return (
{ minRatePrice === maxRatePrice && ! multiple
? priceElement
: createInterpolateElement(
minRatePrice === 0 && maxRatePrice === 0
? ''
: __(
'from ',
'woo-gutenberg-products-block'
),
{
price: priceElement,
}
) }
);
};