lobby duplikalas fix toastyfy plusz apro fixek lol

This commit is contained in:
2025-11-17 23:07:38 +01:00
parent 13871b2dcc
commit dd93f054f8
2 changed files with 238 additions and 269 deletions
@@ -20,20 +20,20 @@ const GameLobbySetup = () => {
const [isPublic, setIsPublic] = useState(true)
const [loading, setLoading] = useState(false)
const [error, setError] = useState(null)
const [createdGameCode, setCreatedGameCode] = useState('')
const [createdGameCode, setCreatedGameCode] = useState("")
const [showSuccess, setShowSuccess] = useState(false)
const handleCreateLobby = async () => {
setLoading(true)
setError(null)
try {
const username = localStorage.getItem('username')
console.log('Creating game - username:', username)
const username = localStorage.getItem("username")
console.log("Creating game - username:", username)
if (!username) {
setError('Kérlek jelentkezz be először!')
setError("Kérlek jelentkezz be először!")
setLoading(false)
return
}
@@ -45,48 +45,48 @@ const GameLobbySetup = () => {
logintype: isPublic ? 0 : 1, // 0=PUBLIC, 1=PRIVATE, 2=ORGANIZATION
}
console.log('Creating game with data:', gameData)
console.log("Creating game with data:", gameData)
const response = await createGame(gameData)
console.log('Game created:', response)
console.log("Game created:", response)
// Verify localStorage still has username
console.log('After create - username:', localStorage.getItem('username'))
console.log("After create - username:", localStorage.getItem("username"))
// Backend returns game object directly
const code = response.gamecode || response.gameCode
if (code) {
setCreatedGameCode(code)
setShowSuccess(true)
}
// Creator needs to join their own game to get a gameToken
// This allows the WebSocket to recognize them as the gamemaster
try {
const username = localStorage.getItem('username')
const username = localStorage.getItem("username")
const joinResponse = await joinGame({
gameCode: code,
playerName: username
playerName: username,
})
if (joinResponse.gameToken) {
localStorage.setItem('gameToken', joinResponse.gameToken)
console.log('Creator joined game as gamemaster, token stored')
localStorage.setItem("gameToken", joinResponse.gameToken)
console.log("Creator joined game as gamemaster, token stored")
}
} catch (joinError) {
console.error('Failed to join game as creator:', joinError)
console.error("Failed to join game as creator:", joinError)
// Continue anyway - the creator can still try to join manually
}
// Wait 3 seconds to show code, then navigate to lobby
setTimeout(() => {
console.log('Navigating to lobby with code:', code)
goLobby({ gameCode: code })
}, 3000)
// Azonnali navigáció a lobbyhoz, amint létrejött a játék
console.log("Navigating to lobby with code:", code)
goLobby({ gameCode: code })
} catch (err) {
console.error('Create game error:', err)
console.error('Error response:', err.response?.data)
console.error('Error status:', err.response?.status)
setError(err.response?.data?.message || err.response?.data?.error || 'Nem sikerült létrehozni a játékot')
console.error("Create game error:", err)
console.error("Error response:", err.response?.data)
console.error("Error status:", err.response?.status)
setError(
err.response?.data?.message || err.response?.data?.error || "Nem sikerült létrehozni a játékot"
)
} finally {
setLoading(false)
}
@@ -132,26 +132,9 @@ const GameLobbySetup = () => {
{deckIds.length} pakli kiválasztva. Add meg a játék részleteit.
</motion.p>
{error && (
<div className="bg-red-500/20 border border-red-500 rounded-lg p-4 mb-6">
{error}
</div>
)}
{error && <div className="bg-red-500/20 border border-red-500 rounded-lg p-4 mb-6">{error}</div>}
{createdGameCode && (
<div className="bg-green-500/20 border border-green-500 rounded-lg p-6 mb-6">
<p className="font-bold text-xl mb-2">Játék Létrehozva! 🎉</p>
<p className="text-3xl font-mono tracking-wider text-green-400 mb-2">
{createdGameCode}
</p>
<p className="text-sm text-gray-300">
Oszd meg ezt a kódot más játékosokkal, hogy csatlakozhassanak!
</p>
<p className="text-sm text-gray-400 mt-2">
Átirányítás a lobby-hoz 3 másodperc múlva...
</p>
</div>
)}
{/* ...a kód kiírása törölve, lobbyban jelenik meg... */}
<div className="bg-[color:var(--color-surface)]/80 backdrop-blur-lg rounded-2xl p-8 shadow-lg space-y-6">
{/* Max Players */}
@@ -206,9 +189,9 @@ const GameLobbySetup = () => {
className="bg-gray-600 hover:bg-gray-700"
disabled={loading}
/>
<ButtonGreen
text={loading ? "Létrehozás..." : "Lobby Létrehozása"}
onClick={handleCreateLobby}
<ButtonGreen
text={loading ? "Létrehozás..." : "Lobby Létrehozása"}
onClick={handleCreateLobby}
width="w-auto px-8"
disabled={loading}
/>