import React from 'react'; import { CatalogModuleItem, READINESS_CONFIG, AVAILABILITY_CONFIG } from './catalogData'; import { MaturityBadge } from '../../shared/ui/MaturityBadge'; import { Badge } from '../../shared/ui/Badge'; import { Button } from '../../shared/ui/Button'; import { Users, ShoppingBag, Boxes, Truck, Workflow, UserCheck, MessageSquareText, Headset, CheckSquare, BadgeDollarSign, Megaphone, BarChart3, Cpu, Sparkles, Globe, Settings, Grid, ArrowRight, Info, Check, } from 'lucide-react'; import { useNavigate } from 'react-router-dom'; const ICON_COMPONENTS: Record = { Users: , ShoppingBag: , Boxes: , Truck: , Workflow: , UserCheck: , MessageSquareText: , Headset: , CheckSquare: , BadgeDollarSign: , Megaphone: , BarChart3: , Cpu: , Sparkles: , Globe: , Settings: , Grid: , }; export interface ModuleCardProps { module: CatalogModuleItem; onOpenDetails: (module: CatalogModuleItem) => void; isRecommended?: boolean; } export const ModuleCard: React.FC = ({ module, onOpenDetails, isRecommended = false, }) => { const navigate = useNavigate(); const readiness = READINESS_CONFIG[module.readiness]; const availability = AVAILABILITY_CONFIG[module.availability]; const handleOpen = () => { navigate(module.route); }; return (
{/* Top meta bar: category + badges */}
{ICON_COMPONENTS[module.iconName] || }
{isRecommended && ( ★ Рекомендовано )}
{availability.label}
{/* Title and description */}

{module.title}

{module.description}

{/* Features list */}
Ключевые возможности: {module.features.slice(0, 3).map((f, i) => (
{f}
))}
{/* Action buttons */}
); };