"use client"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Trash, PlusCircle } from "lucide-react"; interface PricingTiersProps { pricing: any[]; handleTierChange: ( e: React.ChangeEvent, index: number ) => void; handleRemoveTier: (index: number) => void; handleAddTier: () => void; } export const PricingTiers = ({ pricing, handleTierChange, handleRemoveTier, handleAddTier, }: PricingTiersProps) => { const formatNumber = (num: number) => { return Number(num.toFixed(2)).toString(); }; const formatTotal = (num: number) => { return num.toFixed(2); }; const calculateTotal = (quantity: number, pricePerUnit: number) => { return formatTotal(quantity * pricePerUnit); }; const handleTotalChange = ( e: React.ChangeEvent, index: number, minQuantity: number ) => { const totalPrice = Number(e.target.value); const pricePerUnit = minQuantity > 0 ? totalPrice / minQuantity : 0; const syntheticEvent = { target: { name: 'pricePerUnit', value: formatNumber(pricePerUnit) } } as React.ChangeEvent; handleTierChange(syntheticEvent, index); }; return (

Tiered Pricing

{pricing?.length > 0 ? ( <>
Quantity
Price Per Unit
Total Price
{pricing.map((tier, index) => (
handleTierChange(e, index)} className="h-8 text-sm px-2" /> handleTierChange(e, index)} className="h-8 text-sm px-2" /> handleTotalChange(e, index, tier.minQuantity)} className="h-8 text-sm px-2" />
))} ) : (

No pricing tiers added.

)}
); };