c1c139de32
- Added ParticlesBackground component with Canvas-based animation - Created ServerMap with 25+ global server locations - Added interactive hover tooltips for server details - Implemented real-time stats display (users, latency) - Fixed hydration mismatch error in ServerMap - Increased particle visibility (opacity 0.6, 150 particles) - Added Docker support with docker-compose.yml - Created comprehensive documentation (SETUP.md, DEBUG.md, FEATURES.md) - Added translations for new sections (EN/RU/ZH) - Configured proper port mapping (5173) New features: - Animated particles with dynamic connections - Global network infrastructure visualization - 25 server locations across 6 continents - Hover interactions with server statistics - Responsive design for all screen sizes
5.4 KiB
5.4 KiB
🐛 Отладка Gekon
Проблема: Не видно частицы
Возможные причины:
-
Canvas не поддерживается браузером
- Откройте консоль браузера (F12)
- Проверьте ошибки JavaScript
-
Частицы за другими элементами
- Проверьте z-index
- Убедитесь, что ParticlesBackground рендерится
-
Opacity слишком низкая
- Частицы имеют opacity: 0.4
- На светлом фоне могут быть не видны
Быстрая проверка:
- Откройте http://localhost:5173 (или 8080)
- Нажмите F12 (DevTools)
- Перейдите в Console
- Проверьте ошибки
Типичные ошибки:
Ошибка: "Cannot read property 'getContext' of null"
Решение: Canvas ref не инициализирован
// Проверьте, что canvas монтируется
useEffect(() => {
const canvas = canvasRef.current;
if (!canvas) {
console.error('Canvas not found!');
return;
}
// ...
}, []);
Ошибка: "ResizeObserver loop limit exceeded"
Решение: Это предупреждение, можно игнорировать
Частицы не видны
Решение 1: Увеличьте opacity
// В ParticlesBackground.tsx, строка ~60
ctx.fillStyle = `rgba(16, 185, 129, ${particle.opacity * 2})`; // Увеличили в 2 раза
Решение 2: Увеличьте размер частиц
// В ParticlesBackground.tsx, строка ~40
size: Math.random() * 4 + 2, // Было: * 2 + 1
Решение 3: Увеличьте количество
// В ParticlesBackground.tsx, строка ~35
const particleCount = Math.min(200, ...); // Было: 100
Проверка рендеринга:
Добавьте console.log в ParticlesBackground:
useEffect(() => {
console.log('ParticlesBackground mounted!');
const canvas = canvasRef.current;
if (!canvas) {
console.error('Canvas not found!');
return;
}
console.log('Canvas found:', canvas.width, 'x', canvas.height);
console.log('Particles count:', particlesRef.current.length);
// ...
}, []);
Проверка в браузере:
- Откройте DevTools (F12)
- Elements tab
- Найдите
<canvas>элемент - Проверьте стили:
position: absoluteinset: 0opacity: 0.4z-indexне перекрыт
Временное решение (для теста):
Сделайте частицы очень заметными:
// В ParticlesBackground.tsx
// Строка ~60 - увеличьте opacity
ctx.fillStyle = `rgba(16, 185, 129, 1)`; // Полная непрозрачность
// Строка ~40 - увеличьте размер
size: Math.random() * 10 + 5, // Большие частицы
// Строка ~35 - больше частиц
const particleCount = 200;
Проверка карты серверов:
Если карта не работает:
- Откройте консоль (F12)
- Проверьте ошибки в ServerMap
- Убедитесь, что hover работает
Типичная проблема: Tooltips не показываются
// Проверьте z-index в ServerMap.tsx
// Tooltip должен иметь z-10
className="... z-10 ..."
Перезапуск с чистого листа:
# Остановите Docker
wsl bash -c "cd gekon-speed-boost-3ba17197-main && docker compose down"
# Удалите volumes
wsl bash -c "cd gekon-speed-boost-3ba17197-main && docker compose down -v"
# Пересоберите
wsl bash -c "cd gekon-speed-boost-3ba17197-main && docker compose up --build"
Проверка портов:
Текущий порт может быть 8080 вместо 5173:
- Попробуйте http://localhost:8080
- Или http://localhost:5173
Логи Docker:
# Смотрите логи в реальном времени
wsl bash -c "cd gekon-speed-boost-3ba17197-main && docker compose logs -f"
Если ничего не помогает:
- Откройте http://localhost:8080 (или 5173)
- Нажмите F12
- Скопируйте все ошибки из Console
- Проверьте Network tab - все ли файлы загружаются
Быстрый тест частиц:
Добавьте в консоль браузера:
// Проверка Canvas API
const canvas = document.querySelector('canvas');
if (canvas) {
console.log('Canvas found!', canvas.width, canvas.height);
const ctx = canvas.getContext('2d');
ctx.fillStyle = 'red';
ctx.fillRect(100, 100, 200, 200); // Красный квадрат для теста
} else {
console.error('Canvas NOT found!');
}
Если увидите красный квадрат - Canvas работает, проблема в коде частиц. Если нет - Canvas не рендерится.
Текущий статус:
- ✅ Docker запущен
- ✅ Vite работает
- ❓ Частицы - нужна проверка
- ❓ Карта - нужна проверка
Порт: http://localhost:8080 или http://localhost:5173