woocommerce/plugins/woocommerce-blocks/packages/checkout/totals/taxes/index.js

63 lines
1.2 KiB
JavaScript
Raw Normal View History

/**
* External dependencies
*/
import classnames from 'classnames';
import { __ } from '@wordpress/i18n';
import PropTypes from 'prop-types';
import {
TAXES_ENABLED,
DISPLAY_ITEMIZED_TAXES,
} from '@woocommerce/block-settings';
/**
* Internal dependencies
*/
import TotalsItem from '../item';
import './style.scss';
const TotalsTaxes = ( { currency, values, className } ) => {
const { total_tax: totalTax, tax_lines: taxLines } = values;
if ( ! TAXES_ENABLED ) {
return null;
}
if ( ! DISPLAY_ITEMIZED_TAXES ) {
return (
<TotalsItem
className={ classnames(
'wc-block-components-totals-taxes',
className
) }
currency={ currency }
label={ __( 'Taxes', 'woo-gutenberg-products-block' ) }
value={ parseInt( totalTax, 10 ) }
/>
);
}
return (
<>
{ taxLines.map( ( { name, price }, i ) => (
<TotalsItem
key={ `tax-line-${ i }` }
className="wc-block-components-totals-taxes"
currency={ currency }
label={ name }
value={ parseInt( price, 10 ) }
/>
) ) }{ ' ' }
</>
);
};
TotalsTaxes.propTypes = {
currency: PropTypes.object.isRequired,
values: PropTypes.shape( {
total_tax: PropTypes.string,
} ).isRequired,
className: PropTypes.string,
};
export default TotalsTaxes;