Наша команда

Вася

Вася

Серёжа

Серёжа

👤

Леся

Наша история

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?: string
8 title?: string
9 items: Array<{
10 id: string
11 icon: string
12 title: string
13 description?: string
14 link?: string
15 }>
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.Star
40import { icons, type LucideIcon } from 'lucide-react'
41
42interface IconGridBlockProps {
43 block: {
44 label?: string
45 title?: string
46 items: Array<{
47 id: string
48 icon: string
49 title: string
50 description?: string
51 link?: string
52 }>
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