import Badge from '@/components/ui/Badge.tsx'; import { Card } from '@/components/ui/Card.tsx'; import { Grid } from '@/components/ui/layout'; import { useDynamicSectors } from '@/hooks/useDynamicSectors.ts'; import { useTranslation } from '@/hooks/useI18n.tsx'; import { motion } from 'framer-motion'; import React from 'react'; interface ModernSectorVisualizationProps { maxItems?: number; showStats?: boolean; } const ModernSectorVisualization: React.FC = ({ maxItems = 8, showStats = false, }) => { const { t } = useTranslation(); const { sectors: dynamicSectors, isLoading } = useDynamicSectors(maxItems); // Safety check for translation context if (!t) { return (

Loading...

); } if (isLoading) { return (
{Array.from({ length: maxItems }).map((_, i) => (
))}
); } return (
{dynamicSectors.slice(0, maxItems).map((sector, index) => (
{React.cloneElement(sector.icon, { className: `w-8 h-8 text-sector-${sector.colorKey} group-hover:scale-110 transition-transform duration-300`, })}

{t(`${sector.nameKey}.name`)}

{showStats && sector.count !== undefined && (
{t('common.organizations', { count: sector.count })}
)}
{/* Subtle connection indicator */}
))}
); }; export default React.memo(ModernSectorVisualization);