import { useNavigate } from "@tanstack/react-router"; import { useFormatters } from "../hooks/useFormatters"; import { useDuplicateItem } from "../hooks/useItems"; import { LucideIcon } from "../lib/iconData"; import { useUIStore } from "../stores/uiStore"; import { ClassificationBadge } from "./ClassificationBadge"; import { GearImage, imageContainerBg } from "./GearImage"; interface ItemCardProps { id: number; name: string; weightGrams: number | null; priceCents: number | null; quantity?: number; categoryName: string; categoryIcon: string; imageFilename: string | null; imageUrl?: string | null; productUrl?: string | null; brand?: string | null; dominantColor?: string | null; cropZoom?: number | null; cropX?: number | null; cropY?: number | null; onRemove?: () => void; classification?: string; onClassificationCycle?: () => void; } export function ItemCard({ id, name, weightGrams, priceCents, quantity, categoryName, categoryIcon, imageFilename: _imageFilename, imageUrl, productUrl, brand, dominantColor, cropZoom, cropX, cropY, onRemove, classification, onClassificationCycle, }: ItemCardProps) { const { weight, price } = useFormatters(); const navigate = useNavigate(); const openExternalLink = useUIStore((s) => s.openExternalLink); const duplicateItem = useDuplicateItem(); return ( ); }