import React, {FC, ReactNode} from "react"; import {renderCurrencyValue} from "../fields/helpers"; import {ProductDiscountOptions} from "./BuyXGetX"; import classNames from "classnames"; import {__} from "../../globals"; export type DiscountValueProps = { productDiscountOptions: ProductDiscountOptions, size?: 'normal' | 'small' } export const DiscountValue: FC = ({productDiscountOptions, size = 'normal'}) => { const renderOfferMainValue = (value: string | number, type?: 'normal' | 'number' | 'percentage' | 'amount' | 'fixed-price') => { let off = OFF; return
{type === 'amount' &&
{
{renderCurrencyValue(value)}
} {off}
} {type === 'fixed-price' &&
For{
{renderCurrencyValue(value)}
}{productDiscountOptions.quantity > 1 && each}
} {!['amount', 'fixed-price'].includes(productDiscountOptions.discount.type) && value} {type === 'percentage' && % {off}}
; } if (productDiscountOptions.discount.type === 'free') { return renderOfferMainValue('FREE', 'normal'); } if (productDiscountOptions.discount.type === 'percentage') { return renderOfferMainValue(productDiscountOptions.discount.amount, 'percentage'); } if (productDiscountOptions.discount.type === 'amount') { return renderOfferMainValue(productDiscountOptions.discount.amount, 'amount'); } if (productDiscountOptions.discount.type === 'fixed-price') { return renderOfferMainValue(productDiscountOptions.discount.amount, 'fixed-price'); } // amount or fixed-price return {productDiscountOptions.discount.amount}; } export type DiscountValueRendererProps = { productDiscountOptions: ProductDiscountOptions, // size?: 'normal' | 'small' } export const DiscountQuantity: FC = ({productDiscountOptions: {quantity, qty, qtyType}}): ReactNode => { let value: ReactNode if (qtyType === 'simple') { value = quantity; } else { // advanced currently only supports 'anu' value =
{__('unlimited *').replace('*', '')} {__('qty')}
} return
{value}
}