# Компоненты

Эта директория содержит все React компоненты приложения, организованные по функциональным категориям.

## Структура

```
components/
├── home/           # Компоненты главной страницы
├── media/          # Компоненты для работы с медиа
├── navigation/     # Навигационные компоненты
├── profile/        # Компоненты профиля
├── reactbits/      # Переиспользуемые UI компоненты
└── reviews/        # Компоненты для рецензий
```

## Описание категорий

### home/
Компоненты, используемые на главной странице приложения:
- `HeroSection` - Главный баннер с призывом к действию
- `GridSection` - Сетка с популярным контентом
- `FeaturedMedia` - Выделенные медиа
- `StatsSection` - Статистика платформы

### media/
Компоненты для работы с медиаконтентом:
- `MediaCard` - Карточка медиа для каталога
- `MediaDetails` - Детальная информация о медиа
- `MediaGrid` - Сетка медиа
- `MediaSearch` - Поиск медиа

### navigation/
Навигационные компоненты:
- `AppDock` - Док приложения
- `Navbar` - Верхняя навигационная панель
- `Sidebar` - Боковая панель навигации
- `Breadcrumbs` - Навигационные хлебные крошки

### profile/
Компоненты для работы с профилями пользователей:
- `ProfileHeader` - Заголовок профиля
- `ProfileStats` - Статистика пользователя
- `ProfileReviews` - Рецензии пользователя
- `ProfileSettings` - Настройки профиля

### reactbits/
Переиспользуемые UI компоненты:
- `TiltedCard` - Карточка с эффектом наклона
- `GridMotion` - Анимированная сетка
- `ClickSpark` - Эффект искры при клике
- `RotateText` - Вращающийся текст

### reviews/
Компоненты для работы с рецензиями:
- `ReviewCard` - Карточка рецензии
- `ReviewForm` - Форма создания/редактирования рецензии
- `ReviewList` - Список рецензий
- `LatestReviewsMarquee` - Бегущая строка последних рецензий

## Использование

Все компоненты следуют единому стилю кодирования и используют:
- Функциональные компоненты
- React Hooks
- Tailwind CSS для стилизации
- Framer Motion для анимаций
- PropTypes для типизации пропсов

## Лучшие практики

1. Компоненты должны быть максимально переиспользуемыми
2. Используйте мемоизацию для оптимизации производительности
3. Следуйте принципу единственной ответственности
4. Документируйте пропсы и их типы
5. Используйте контекст для глобального состояния
6. Тестируйте компоненты на разных размерах экрана 