All files / src/components/Basket BasketTotal.tsx

40% Statements 2/5
0% Branches 0/6
0% Functions 0/1
40% Lines 2/5

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  4x                           4x                                            
import React, { FC } from 'react';
const styles = require('./Basket.module.css')
import { formatToPrice } from '../../helpers';
import { Button, ButtonClasses } from 'ag-ems-ui-library';
import { LocalizedLink as Link } from 'gatsby-theme-i18n';
import { useTranslation } from 'react-i18next';
import { useCartContext } from '../../contexts';
 
export const BasketTotal: FC<{
  classes?: string;
  button?: {
    link?: string;
    onClick?: () => void;
    text: string;
  };
}> = ({ classes, button }) => {
  const { t } = useTranslation();
  const { totalPrice } = useCartContext();
 
  return (
    <div className={`${styles.BasketTotal} ${classes ? classes : ''}`}>
      <div className={styles.BasketTotalLine}>
        <h2>{t('cart.totalSum')} <span className={styles.BasketTotalLineHint}>({t('price_hint', {percent: '19%'})}):</span></h2>
        <span className={styles.value}>{formatToPrice(totalPrice)}</span>
      </div>
      {button
        ? button.link
          ?
          <Link
            to="/checkout"
            className={`${styles.BasketButton} ${ButtonClasses.lg} ${ButtonClasses['ks-primary']} ${ButtonClasses.fullWidth}`}
          >{button.text}</Link>
          : <Button value={button.text} sizing="lg" variant="ks-primary" onClick={button.onClick} fullWidth={true} />
        : null
      }
    </div>
  );
};