import React, { useState, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import { useAuth } from '../context/AuthContext'; import { useRoom } from '../hooks/useRoom'; import NameInputModal from '../components/NameInputModal'; const CreateRoom = () => { const navigate = useNavigate(); const { user, loginAnonymous, loading: authLoading } = useAuth(); const { createRoom, loading: roomLoading } = useRoom(); const [settings, setSettings] = useState({ maxPlayers: 10, allowSpectators: true, timerEnabled: false, timerDuration: 30, password: '', }); const [isNameModalOpen, setIsNameModalOpen] = useState(false); const [isHostNameModalOpen, setIsHostNameModalOpen] = useState(false); // Проверка авторизации и показ модального окна для ввода имени useEffect(() => { if (!authLoading && !user) { setIsNameModalOpen(true); } else if (user) { setIsNameModalOpen(false); } }, [authLoading, user]); // Обработка ввода имени и авторизация const handleNameSubmit = async (name) => { try { await loginAnonymous(name); setIsNameModalOpen(false); } catch (error) { console.error('Login error:', error); alert('Ошибка при авторизации. Попробуйте еще раз.'); } }; const handleCreateRoom = async () => { if (!user) { setIsNameModalOpen(true); return; } // Всегда спрашиваем имя хоста перед созданием комнаты setIsHostNameModalOpen(true); }; const handleHostNameSubmit = async (name) => { setIsHostNameModalOpen(false); try { // Очищаем пустой пароль перед отправкой const cleanSettings = { ...settings }; if (!cleanSettings.password || !cleanSettings.password.trim()) { delete cleanSettings.password; } else { cleanSettings.password = cleanSettings.password.trim(); } const room = await createRoom( user.id, undefined, cleanSettings, name.trim(), ); navigate(`/room/${room.code}`); } catch (error) { console.error('Error creating room:', error); alert('Ошибка создания комнаты'); } }; return (