"use client"; import * as React from "react"; import { cn } from "./lib/utils"; export interface CartBadgeProps extends React.HTMLAttributes { count: number; /** Pulse animation trigger on count change */ pulseOnChange?: boolean; } /** Cart badge: animated pulse on quantity update. */ export function CartBadge({ count, pulseOnChange = true, className, ...props }: CartBadgeProps) { const prev = React.useRef(count); const [pulse, setPulse] = React.useState(false); React.useEffect(() => { if (pulseOnChange && count !== prev.current) { prev.current = count; setPulse(true); const t = setTimeout(() => setPulse(false), 400); return () => clearTimeout(t); } }, [count, pulseOnChange]); if (count <= 0) return null; return ( {count > 99 ? "99+" : count} ); }