import React, { ReactElement } from 'react'; import './ProductPrice.scss'; import { Price, SpecificPrice } from '../types/VariantTypes'; type priceVariant = 'OriginalPrice' | 'CurrentPrice' | 'DepositPrice'; const returnPrices = ( priceVariant: priceVariant, priceData: SpecificPrice, ): ReactElement => { const priceHuman = priceData.human; switch (priceVariant) { case 'OriginalPrice': return {priceHuman}; case 'CurrentPrice': return {priceHuman}; case 'DepositPrice': return priceHuman ? ( {`(${priceHuman} Deposit)`} ) : null; } }; interface ProductPriceProps { priceData: Price; } export const ProductPrice = ( props: ProductPriceProps, ): ReactElement => { const originalPrice = props.priceData.original_price.price; const currentPrice = props.priceData.current_price.price; const showOriginalPrice = originalPrice !== currentPrice; return (
{showOriginalPrice && returnPrices('OriginalPrice', props.priceData.original_price)} {returnPrices('CurrentPrice', props.priceData.current_price)} {returnPrices('DepositPrice', props.priceData.deposit_price)}
); };