import { Card, CardContent, CardHeader, CardTitle, } from "@/src/components/ui/card"; import { Badge } from "@/src/components/ui/badge"; import { useMemo } from "react"; import { usePriceUnitMultiplier } from "@/src/features/models/hooks/usePriceUnitMultiplier"; import Decimal from "decimal.js"; import { getMaxDecimals } from "@/src/features/models/utils"; type MatchedTierCardProps = { tier: { id: string; name: string; priority: number; isDefault: boolean; prices: Record; }; }; export type { MatchedTierCardProps }; export function MatchedTierCard({ tier }: MatchedTierCardProps) { const { priceUnit, priceUnitMultiplier } = usePriceUnitMultiplier(); const maxDecimals = useMemo( () => Math.max( ...Object.values(tier.prices).map((price) => getMaxDecimals(price, priceUnitMultiplier), ), ), [tier.prices, priceUnitMultiplier], ); return ( Matched Pricing Tier
{tier.name} {tier.isDefault && ( Default )} Priority: {tier.priority}
Prices (per {priceUnit}):
{Object.entries(tier.prices).map(([usageType, price]) => (
{usageType}: $ {new Decimal(price) .mul(priceUnitMultiplier) .toFixed(maxDecimals)}
))}
); }