// src/pages/Home/Home.jsx // Régi PlayMenu-s oldal, "Home" néven import { useEffect, useState } from "react" import useRequireAuth from "../../hooks/useRequireAuth" import HandleNavigate from "../../utils/HandleNavigate/HandleNavigate" import Navbar from "../../components/Navbar/Navbar" import Footer from "../../components/Footer/Footer.jsx" import Background from "../../assets/backgrounds/Background.jsx" import PlayMenu from "../../components/Landingpage/PlayMenu.jsx" import { joinGame } from "../../api/gameApi.js" export default function Home() { const { goLogin, goLobby, goChooseDeck } = HandleNavigate() // a hook inicializálja a user-t a localStorage-ból és visszaadja a state-et + settert const [user, setUser] = useRequireAuth({ redirect: false }) // no redirect on unauthenticated visitors const [isJoining, setIsJoining] = useState(false) // Join game handler - csatlakozás játékhoz kóddal const handleJoinGame = async (code, playerName) => { // playerName is now passed from PlayMenu (either logged in user or guest name) if (!playerName) { alert('Név megadása kötelező a játékhoz való csatlakozáshoz!'); return; } setIsJoining(true) try { const joinData = { gameCode: code.toUpperCase(), playerName: playerName, } const response = await joinGame(joinData) // Backend returns game object directly if (response.gameToken) { localStorage.setItem('gameToken', response.gameToken) } goLobby({ gameCode: code.toUpperCase() }) } catch (err) { const errorMsg = err.response?.data?.error || err.response?.data?.message || 'Nem sikerült csatlakozni a játékhoz' alert(errorMsg) } finally { setIsJoining(false) } } // Create game handler - új játék létrehozása const handleCreateGame = () => { if (!user) { alert('Kérlek először jelentkezz be!') goLogin() return } // Navigate to choose deck page to start game creation flow goChooseDeck() } const userObj = { name: user } // ha szükséges a user módosítása máshol: setUser("újnév") automatikusan menti localStorage-be return (