Наша команда

Вася

Серёжа
👤
Леся
Наша история
01
2020
крякяр
пукпук
02
2025
ойойой
лулулу
Вот так выглядит код
css
1import Link from 'next/link'2import { cn } from '@/lib/utils'3import * as LucideIcons from 'lucide-react'4 5interface IconGridBlockProps {6 block: {7 label?: string8 title?: string9 items: Array<{10 id: string11 icon: string12 title: string13 description?: string14 link?: string15 }>16 columns?: '2' | '3' | '4' | '6'17 variant?: 'default' | 'bordered' | 'filled'18 }19}20 21export default function IconGridBlock({ block }: IconGridBlockProps) {22 const columns = block.columns || '3'23 const variant = block.variant || 'default'24 25 const columnClasses = {26 '2': 'grid-cols-1 sm:grid-cols-2',27 '3': 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3',28 '4': 'grid-cols-2 md:grid-cols-4',29 '6': 'grid-cols-2 sm:grid-cols-3 lg:grid-cols-6',30 }31 32 const variantClasses = {33 default: '',34 bordered: 'border-2 border-gray-200 rounded-lg p-4 md:p-6',35 filled: 'bg-gray-100 rounded-lg p-4 md:p-6',36 }37 38 const renderItem = (item: { id: string; icon: string; title: string; description?: string; link?: string }) => {39 const IconComponent = (LucideIcons as Record<string, React.ComponentType<{ className?: string }>>)[item.icon] || LucideIcons.Star40import { icons, type LucideIcon } from 'lucide-react'41 42interface IconGridBlockProps {43 block: {44 label?: string45 title?: string46 items: Array<{47 id: string48 icon: string49 title: string50 description?: string51 link?: string52 }>53 columns?: '2' | '3' | '4' | '6'54 variant?: 'default' | 'bordered' | 'filled'55 }56}57 58export default function IconGridBlock({ block }: IconGridBlockProps) {59 const columns = block.columns || '3'60 const variant = block.variant || 'default'61 62 const columnClasses = {63 '2': 'grid-cols-1 sm:grid-cols-2',64 '3': 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3',65 '4': 'grid-cols-2 md:grid-cols-4',66 '6': 'grid-cols-2 sm:grid-cols-3 lg:grid-cols-6',67 }68 69 const variantClasses = {70 default: '',71 bordered: 'border-2 border-gray-200 rounded-lg p-4 md:p-6',72 filled: 'bg-gray-100 rounded-lg p-4 md:p-6',73 }74 75 const renderItem = (item: { id: string; icon: string; title: string; description?: string; link?: string }) => {76 const IconComponent: LucideIcon = icons[item.icon as keyof typeof icons] || icons.Star