diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx
index 7e4e1a8..6c64689 100644
--- a/src/app/about/page.tsx
+++ b/src/app/about/page.tsx
@@ -2,6 +2,138 @@
import { useState, useEffect } from 'react';
import Navigation from '../components/Navigation';
+import {
+ User,
+ Code,
+ UserCog,
+ Wrench,
+ Palette,
+ ClipboardList,
+ Monitor,
+ Utensils,
+ Handshake,
+ TestTube,
+ Rocket,
+ Calendar,
+ Briefcase,
+ Settings,
+ Users,
+ Building2,
+ Award,
+ Target,
+ Lightbulb,
+ Zap,
+ Star,
+ CheckCircle,
+ TrendingUp,
+ Globe,
+ Shield,
+ Database,
+ Server,
+ Cpu,
+ Network,
+ Smartphone,
+ Tablet,
+ Laptop,
+ Printer,
+ Camera,
+ Headphones,
+ Keyboard,
+ Mouse,
+ HardDrive,
+ Wifi,
+ Bluetooth,
+ Usb,
+ Power,
+ Battery,
+ Volume2,
+ Mic,
+ Video,
+ Phone,
+ Mail,
+ MapPin,
+ Clock,
+ DollarSign,
+ FileText,
+ Package,
+ Truck,
+ Home,
+ CheckSquare,
+ AlertCircle,
+ Info,
+ HelpCircle,
+ BookOpen,
+ GraduationCap,
+ Trophy,
+ Medal,
+ Crown,
+ Heart,
+ ThumbsUp,
+ MessageSquare,
+ PhoneCall,
+ MailOpen,
+ Send,
+ Download,
+ Upload,
+ Share2,
+ Link,
+ ExternalLink,
+ ArrowRight,
+ ArrowLeft,
+ ChevronRight,
+ ChevronLeft,
+ Plus,
+ Minus,
+ X,
+ Search,
+ Filter,
+ SortAsc,
+ SortDesc,
+ Eye,
+ EyeOff,
+ Lock,
+ Unlock,
+ Key,
+ CreditCard,
+ ShoppingCart,
+ ShoppingBag,
+ Tag,
+ Percent,
+ BarChart3,
+ PieChart,
+ LineChart,
+ Activity,
+ TrendingDown,
+ AlertTriangle,
+ XCircle,
+ Check,
+ Circle,
+ Square,
+ Triangle,
+ Hexagon,
+ Octagon,
+ Star as StarIcon,
+ Heart as HeartIcon,
+ Smile,
+ Frown,
+ Meh,
+ ThumbsDown,
+ GitBranch,
+ GitCommit,
+ GitMerge,
+ GitPullRequest,
+ Github,
+ Gitlab,
+ Chrome,
+ Apple,
+ Slack,
+ Facebook,
+ Twitter,
+ Instagram,
+ Linkedin,
+ Youtube,
+ Twitch
+} from 'lucide-react';
export default function About() {
const [mounted, setMounted] = useState(false);
@@ -55,7 +187,7 @@ export default function About() {
{
name: 'Александр Гундырев',
role: 'Основатель и CEO',
- avatar: '👨💼',
+ avatar: ,
skills: ['Архитектура', 'DevOps', 'Команда'],
experience: '8+ лет',
projects: '150+',
@@ -73,7 +205,7 @@ export default function About() {
{
name: 'Дмитрий Козлов',
role: 'Lead Developer',
- avatar: '👨💻',
+ avatar:
Мы ориентированы на достижение конкретных результатов и решение реальных задач бизнеса @@ -877,7 +1009,7 @@ export default function About() {
Высокая экспертиза и постоянное развитие компетенций в области IT-технологий @@ -885,7 +1017,7 @@ export default function About() {
Долгосрочные отношения с клиентами, основанные на взаимном доверии и понимании @@ -893,7 +1025,7 @@ export default function About() {
Использование передовых технологий и современных подходов к решению задач @@ -901,7 +1033,7 @@ export default function About() {
Гарантированное качество услуг и соблюдение всех договорных обязательств @@ -909,7 +1041,7 @@ export default function About() {
Постоянное совершенствование процессов и расширение спектра предоставляемых услуг @@ -943,7 +1075,7 @@ export default function About() {
Веб-приложения, мобильные приложения, десктопные программы @@ -954,7 +1086,7 @@ export default function About() {
От аксессуаров до серверного оборудования, работа с госзакупками @@ -964,19 +1096,10 @@ export default function About() {
- Программное обеспечение для улучшения пользовательского опыта -
- - Подробнее → - -Платформа видеосвязи на поддомене заказчика @@ -987,7 +1110,7 @@ export default function About() {
Решения информационной безопасности и защиты данных @@ -998,7 +1121,7 @@ export default function About() {
Официальный партнер Dr.Web, антивирусные решения @@ -1009,7 +1132,7 @@ export default function About() {
Корпоративные поставки и индивидуальные условия @@ -1018,7 +1141,7 @@ export default function About() {
Работа с государственными организациями по 44-ФЗ и 223-ФЗ
diff --git a/src/app/components/ContactModal.tsx b/src/app/components/ContactModal.tsx
index 3283f04..5dfb96f 100644
--- a/src/app/components/ContactModal.tsx
+++ b/src/app/components/ContactModal.tsx
@@ -1,14 +1,13 @@
'use client';
-import { useState, useEffect } from 'react';
+import { useState } from 'react';
import {
MessageCircle,
Briefcase,
Settings,
Lightbulb,
Phone,
- Mail,
- X
+ Mail
} from 'lucide-react';
export interface ContactModalProps {
@@ -27,8 +26,7 @@ export default function ContactModal({ isOpen, onClose, defaultType = 'general',
type: defaultType,
message: ''
});
- const [isSubmitting, setIsSubmitting] = useState(false);
- const [submitStatus, setSubmitStatus] = useState<'idle' | 'success' | 'error'>('idle');
+
const contactTypes = [
{ id: 'general', label: 'Общие вопросы', icon:
+7 (495) 123-45-67
{copySuccess === 'phone' && ( @@ -122,7 +160,7 @@ export default function Contacts() { onMouseEnter={() => setHoveredCard('email')} onMouseLeave={() => setHoveredCard(null)} > -info@gundyrev.ru
{copySuccess === 'email' && ( @@ -134,7 +172,7 @@ export default function Contacts() {Пн-Пт: 9:00-18:00
МСК
@@ -169,74 +207,74 @@ export default function Contacts() {📞 +7 (495) 123-45-67 доб. 101
+ copyToClipboard('sales@gundyrev.ru', 'sales-email')}
>
- 📧 sales@gundyrev.ru
- {copySuccess === 'sales-email' && ✓}
+
👤 Менеджер: Иван Петров
+📞 +7 (495) 123-45-67 доб. 102
+ copyToClipboard('support@gundyrev.ru', 'support-email')}
>
- 📧 support@gundyrev.ru
- {copySuccess === 'support-email' && ✓}
+
⏰ 24/7 для критических задач
+📞 +7 (495) 123-45-67 доб. 103
+ copyToClipboard('accounting@gundyrev.ru', 'accounting-email')}
>
- 📧 accounting@gundyrev.ru
- {copySuccess === 'accounting-email' && ✓}
+
👤 Главный бухгалтер: Елена Сидорова
-⏰ Пн-Пт: 9:00-17:00
+📞 +7 (495) 123-45-67 доб. 104
+ copyToClipboard('partners@gundyrev.ru', 'partners-email')}
>
- 📧 partners@gundyrev.ru
- {copySuccess === 'partners-email' && ✓}
+
👤 Директор по развитию: Анна Козлова
+diff --git a/src/app/development/page.tsx b/src/app/development/page.tsx index c6983f9..62ae8e6 100644 --- a/src/app/development/page.tsx +++ b/src/app/development/page.tsx @@ -1,4 +1,15 @@ import Navigation from '../components/Navigation'; +import { + Globe, + Smartphone, + Monitor, + Settings, + Bot, + Wrench, + Briefcase, + BarChart3, + Store +} from 'lucide-react'; export default function Development() { return ( @@ -45,7 +56,7 @@ export default function Development() {
Создание современных веб-приложений и сайтов @@ -59,7 +70,7 @@ export default function Development() {
Нативные и кроссплатформенные мобильные приложения @@ -73,7 +84,7 @@ export default function Development() {
Программы для Windows, macOS и Linux @@ -87,7 +98,7 @@ export default function Development() {
Серверная логика и интеграционные решения @@ -101,7 +112,7 @@ export default function Development() {
Системы автоматизации бизнес-процессов @@ -115,7 +126,7 @@ export default function Development() {
Сопровождение и развитие готовых решений @@ -259,7 +270,7 @@ export default function Development() {
Система управления клиентами для торговой компании @@ -272,7 +283,7 @@ export default function Development() {
Платформа для анализа данных и создания отчетов @@ -285,7 +296,7 @@ export default function Development() {
Интернет-магазин с интеграцией платежных систем
diff --git a/src/app/drweb/page.tsx b/src/app/drweb/page.tsx
index 7421ee4..c8f1066 100644
--- a/src/app/drweb/page.tsx
+++ b/src/app/drweb/page.tsx
@@ -3,6 +3,22 @@
import Navigation from '../components/Navigation';
import LicenseCalculator from '../components/LicenseCalculator';
import { useState, useEffect } from 'react';
+import {
+ Shield,
+ RefreshCw,
+ Search,
+ CheckCircle,
+ AlertTriangle,
+ Info,
+ XCircle,
+ Smartphone,
+ Trophy,
+ Monitor,
+ Building2,
+ Globe,
+ Cloud,
+ Wrench
+} from 'lucide-react';
export default function DrWeb() {
// Добавляем стили для анимации
@@ -337,8 +353,8 @@ export default function DrWeb() {
notification.type === 'update' ? 'text-blue-400' :
'text-green-400'
}`}>
- {notification.type === 'threat' ? '🛡️' :
- notification.type === 'update' ? '🔄' : '🔍'}
+ {notification.type === 'threat' ?
{notification.message}
@@ -367,9 +383,9 @@ export default function DrWeb() { alert.type === 'warning' ? 'text-yellow-400' : alert.type === 'info' ? 'text-blue-400' : 'text-red-400' }`}> - {alert.type === 'success' ? '✅' : - alert.type === 'warning' ? '⚠️' : - alert.type === 'info' ? 'ℹ️' : '❌'} + {alert.type === 'success' ?{alert.message}
{alert.message}
{alert.message}
Комплексная защита для домашних компьютеров и ноутбуков @@ -533,7 +549,7 @@ export default function DrWeb() {
Корпоративное решение для защиты бизнеса @@ -558,7 +574,7 @@ export default function DrWeb() {
Защита мобильных устройств Android и iOS @@ -583,7 +599,7 @@ export default function DrWeb() {
Защита интернет-шлюзов и почтовых серверов @@ -608,7 +624,7 @@ export default function DrWeb() {
Облачные решения безопасности @@ -633,7 +649,7 @@ export default function DrWeb() {
Бесплатная утилита для лечения зараженных компьютеров
diff --git a/src/app/electronics/page.tsx b/src/app/electronics/page.tsx
index 486802e..450139f 100644
--- a/src/app/electronics/page.tsx
+++ b/src/app/electronics/page.tsx
@@ -2,6 +2,31 @@
import { useState, useEffect } from 'react';
import Navigation from '../components/Navigation';
+import {
+ ShoppingCart,
+ Monitor,
+ Smartphone,
+ Plug,
+ Server,
+ Globe,
+ ClipboardList,
+ CheckCircle,
+ Package,
+ Truck,
+ Home,
+ Zap,
+ Battery,
+ HardDrive,
+ Wifi,
+ Building2,
+ Package2,
+ Wrench,
+ MapPin,
+ FileText,
+ DollarSign,
+ Star,
+ X
+} from 'lucide-react';
export default function Electronics() {
const [selectedCategory, setSelectedCategory] = useState('all');
@@ -24,12 +49,12 @@ export default function Electronics() {
}>>([]);
const categories = [
- { id: 'all', name: 'Все товары', icon: '🛒', color: 'cyan' },
- { id: 'computers', name: 'Компьютеры', icon: '💻', color: 'blue' },
- { id: 'phones', name: 'Телефоны', icon: '📱', color: 'green' },
- { id: 'accessories', name: 'Аксессуары', icon: '🔌', color: 'purple' },
- { id: 'servers', name: 'Серверы', icon: '🖲️', color: 'orange' },
- { id: 'network', name: 'Сеть', icon: '🌐', color: 'teal' }
+ { id: 'all', name: 'Все товары', icon:
Более 500 выигранных тендеров
Надежный поставщик без нарушений
Соблюдение всех сроков контракта
Полный пакет сертификатов и лицензий
Комплексное оснащение офисов и производственных помещений @@ -459,7 +484,7 @@ export default function Electronics() {
Поддержание складских остатков популярных позиций @@ -473,7 +498,7 @@ export default function Electronics() {
Полный цикл технической поддержки оборудования @@ -523,15 +548,15 @@ export default function Electronics() {
Корзина пуста. Добавьте товары из каталога.
{warehouse.address}
@@ -672,15 +697,15 @@ export default function Electronics() {{step.desc}
diff --git a/src/app/globals.css b/src/app/globals.css index dfb95c7..1d58a4d 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -2303,4 +2303,18 @@ body { body { @apply bg-background text-foreground; } +} + +/* Стили для иконок в модальном окне документации */ +.modal-documentation-icon { + transform: none !important; + transition: none !important; + animation: none !important; + will-change: auto !important; +} + +.modal-documentation-icon * { + transform: none !important; + transition: none !important; + animation: none !important; } \ No newline at end of file diff --git a/src/app/page.tsx b/src/app/page.tsx index b6ca0b3..cb9a1c7 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -38,7 +38,7 @@ export default function Home() { uptime: 0 }); const [currentCodeExample, setCurrentCodeExample] = useState(0); - const [techSphereRotation, setTechSphereRotation] = useState(0); + const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 }); const [isContactModalOpen, setIsContactModalOpen] = useState(false); @@ -76,40 +76,6 @@ export default function Home() { return () => clearInterval(interval); }, [mounted]); - // Переключение примеров кода - useEffect(() => { - if (!mounted) return; - - const interval = setInterval(() => { - setCurrentCodeExample(prev => (prev + 1) % codeExamples.length); - }, 4000); - - return () => clearInterval(interval); - }, [mounted]); - - // Вращение 3D-сферы - useEffect(() => { - if (!mounted) return; - - const interval = setInterval(() => { - setTechSphereRotation(prev => (prev + 1) % 360); - }, 50); - - return () => clearInterval(interval); - }, [mounted]); - - // Отслеживание мыши - useEffect(() => { - if (!mounted) return; - - const handleMouseMove = (e: MouseEvent) => { - setMousePosition({ x: e.clientX, y: e.clientY }); - }; - - window.addEventListener('mousemove', handleMouseMove); - return () => window.removeEventListener('mousemove', handleMouseMove); - }, [mounted]); - const codeExamples = [ { title: "React + TypeScript", @@ -148,6 +114,31 @@ model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')` } ]; + // Переключение примеров кода + useEffect(() => { + if (!mounted) return; + + const interval = setInterval(() => { + setCurrentCodeExample(prev => (prev + 1) % codeExamples.length); + }, 4000); + + return () => clearInterval(interval); + }, [mounted, codeExamples.length]); + + + + // Отслеживание мыши + useEffect(() => { + if (!mounted) return; + + const handleMouseMove = (e: MouseEvent) => { + setMousePosition({ x: e.clientX, y: e.clientY }); + }; + + window.addEventListener('mousemove', handleMouseMove); + return () => window.removeEventListener('mousemove', handleMouseMove); + }, [mounted]); + const technologies = [ 'React', 'Node.js', 'Python', 'TypeScript', 'Docker', 'AWS', 'PostgreSQL', 'MongoDB', 'Redis', 'Kubernetes', 'GraphQL', 'Next.js', 'Vue.js', 'Django', @@ -170,7 +161,7 @@ model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')` return ({clientType.description}
{alert.message}
@@ -536,8 +577,8 @@ export default function SecureT() { alert.type === 'warning' ? 'text-yellow-400' : 'text-blue-400' }`}> - {alert.type === 'critical' ? '🚨' : - alert.type === 'warning' ? '⚠️' : 'ℹ️'} + {alert.type === 'critical' ?{alert.message}
@@ -567,8 +608,8 @@ export default function SecureT() { alert.type === 'firewall' ? 'text-orange-400' : 'text-green-400' }`}> - {alert.type === 'encryption' ? '🔐' : - alert.type === 'firewall' ? '🔥' : '💾'} + {alert.type === 'encryption' ?{alert.message}
@@ -598,8 +639,8 @@ export default function SecureT() { alert.type === 'network' ? 'text-cyan-400' : 'text-pink-400' }`}> - {alert.type === 'system' ? '🖥️' : - alert.type === 'network' ? '🌐' : '📁'} + {alert.type === 'system' ?{alert.message}
@@ -625,8 +666,8 @@ export default function SecureT() { alert.type === 'network' ? 'text-cyan-400' : 'text-pink-400' }`}> - {alert.type === 'system' ? '🖥️' : - alert.type === 'network' ? '🌐' : '📁'} + {alert.type === 'system' ?{alert.message}
@@ -654,7 +695,7 @@ export default function SecureT() {@@ -665,7 +706,7 @@ export default function SecureT() {
@@ -676,7 +717,7 @@ export default function SecureT() {
@@ -688,7 +729,7 @@ export default function SecureT() {
Обеспечить максимальную защиту корпоративных данных при сохранении
@@ -720,7 +761,7 @@ export default function SecureT() {
SECURE-T включает в себя:
@@ -756,7 +797,7 @@ export default function SecureT() {
@@ -772,7 +813,7 @@ export default function SecureT() {
@@ -788,7 +829,7 @@ export default function SecureT() {
@@ -823,7 +864,7 @@ export default function SecureT() {
}}
className="glass-effect p-8 rounded-lg hover-glow transition-all duration-300 group hover:scale-105 cursor-pointer"
>
-
Современные алгоритмы шифрования для защиты конфиденциальных данных
@@ -847,7 +888,7 @@ export default function SecureT() {
}}
className="glass-effect p-8 rounded-lg hover-glow transition-all duration-300 group hover:scale-105 cursor-pointer"
>
-
Комплексная защита сетевой инфраструктуры от внешних угроз
@@ -871,7 +912,7 @@ export default function SecureT() {
}}
className="glass-effect p-8 rounded-lg hover-glow transition-all duration-300 group hover:scale-105 cursor-pointer"
>
-
Системы мониторинга и анализа инцидентов информационной безопасности
@@ -895,7 +936,7 @@ export default function SecureT() {
}}
className="glass-effect p-8 rounded-lg hover-glow transition-all duration-300 group hover:scale-105 cursor-pointer"
>
-
Проведение комплексного аудита систем информационной безопасности
@@ -919,7 +960,7 @@ export default function SecureT() {
}}
className="glass-effect p-8 rounded-lg hover-glow transition-all duration-300 group hover:scale-105 cursor-pointer"
>
-
Интеграция решений безопасности с существующей IT-инфраструктурой
@@ -943,7 +984,7 @@ export default function SecureT() {
}}
className="glass-effect p-8 rounded-lg hover-glow transition-all duration-300 group hover:scale-105 cursor-pointer"
>
-
Программы обучения сотрудников основам информационной безопасности
@@ -1001,7 +1042,7 @@ export default function SecureT() {
Пошаговые инструкции по установке и первоначальной настройке системы
@@ -1041,7 +1082,7 @@ export default function SecureT() {
Подробные примеры конфигураций для различных сценариев использования
@@ -1049,7 +1090,7 @@ export default function SecureT() {
Руководство по использованию API и интеграции с внешними системами
@@ -1074,7 +1115,7 @@ export default function SecureT() {
Сертификат соответствия требованиям безопасности информации № РОСС RU.0001.01БИ00 от 15.03.2024
@@ -1094,7 +1135,7 @@ export default function SecureT() {
Лицензия на разработку и производство средств защиты конфиденциальной информации № 149 от 22.08.2023
@@ -1114,7 +1155,7 @@ export default function SecureT() {
Международный стандарт системы менеджмента информационной безопасности
@@ -1134,7 +1175,7 @@ export default function SecureT() {
Включение в единый реестр российских программ для ЭВМ и баз данных
@@ -1154,7 +1195,7 @@ export default function SecureT() {
Соответствие требованиям ГОСТ Р 50922-2006, ГОСТ Р 51241-2017 и другим стандартам
@@ -1174,7 +1215,7 @@ export default function SecureT() {
Использование сертифицированных отечественных криптографических алгоритмов
@@ -1230,7 +1271,7 @@ export default function SecureT() {
Подробное руководство по работе с интерфейсом и основными функциями Техническое руководство для системных администраторов Серия обучающих видеороликов для быстрого освоения Интерактивные курсы с практическими заданиями Готовые сценарии для типовых задач безопасности Индивидуальные занятия с экспертом по безопасности Включен в единый реестр российских программ (№14158) 100% российская разработка без зарубежных компонентов Гарантированная поддержка на территории РФ Все необходимые сертификаты ФСТЭК и лицензии ФСБ Коммерческое предложение Готовое КП для госзакупок Техническое задание Образец ТЗ для тендера Пакет документов Все сертификаты и лицензии Прайс-лист Актуальные цены и условия Подробные руководства по внедрению и настройке
Что включает в себя система SECURE-T?
-
Как быстро можно внедрить SECURE-T?
-
Какие требования к системе для работы SECURE-T?
-
Предоставляется ли техническая поддержка?
-
Можно ли получить демо-версию для тестирования?
- Криптографическая защита
Сетевая безопасность
Мониторинг безопасности
Аудит безопасности
Интеграция систем
Обучение персонала
Полная документация
@@ -1017,7 +1058,7 @@ export default function SecureT() {
rel="noopener noreferrer"
className="px-8 py-4 bg-red-500 text-white font-semibold rounded-lg hover-glow transition-all duration-300 hover:bg-red-600 active:scale-95 flex items-center justify-center gap-2 animate-pulse-secure"
>
- 📖
+ Установка и настройка
Конфигурация
API и интеграция
Сертификат ФСТЭК
Лицензия ФСБ
ISO 27001:2013
Реестр Минпромторга
Соответствие ГОСТ
Криптографические алгоритмы
Руководство пользователя
@@ -1251,7 +1292,7 @@ export default function SecureT() {
Руководство администратора
@@ -1272,7 +1313,7 @@ export default function SecureT() {
Видеоуроки
@@ -1293,7 +1334,7 @@ export default function SecureT() {
Онлайн-курсы
@@ -1314,7 +1355,7 @@ export default function SecureT() {
Практические сценарии
@@ -1335,7 +1376,7 @@ export default function SecureT() {
Персональное обучение
@@ -1376,28 +1417,28 @@ export default function SecureT() {
Соответствие требованиям 44-ФЗ и 223-ФЗ
Реестр отечественного ПО
Импортозамещение
Техническая поддержка
Сертификация
Техническая документация