import { clsx } from 'clsx'; export type PriceSize = 'sm' | 'md' | 'lg'; export interface PriceProps { price: number; originalPrice?: number; showDiscount?: boolean; size?: PriceSize; className?: string; } const sizeStyles: Record = { sm: { price: 'text-base font-bold', original: 'text-sm' }, md: { price: 'text-xl font-bold', original: 'text-base' }, lg: { price: 'text-3xl font-bold', original: 'text-xl' }, }; export function Price({ price, originalPrice, showDiscount = false, size = 'md', className, }: PriceProps) { const isOnSale = originalPrice !== undefined && originalPrice > price; const discount = isOnSale ? Math.round(((originalPrice - price) / originalPrice) * 100) : 0; return (
${price.toFixed(2)} {isOnSale && ( <> ${originalPrice.toFixed(2)} {showDiscount && ( {discount}% off )} )}
); } export default Price;