41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import useGameState from "@lib/hooks/useGameState"
|
|
import { useRouter } from "next/router"
|
|
import React, { useEffect } from "react"
|
|
import { toast } from "react-toastify"
|
|
|
|
export default function Game() {
|
|
const { gameProps, session } = useGameState()
|
|
const router = useRouter()
|
|
|
|
useEffect(() => {
|
|
const gameId = gameProps.payload?.game?.id
|
|
const path = gameId ? "/game" : "/start"
|
|
toast.promise(router.push(path), {
|
|
pending: {
|
|
render: "Wird weitergeleitet...",
|
|
toastId: "redirect",
|
|
},
|
|
success: {
|
|
render: gameId
|
|
? "Spiel gefunden!"
|
|
: session?.user
|
|
? "Kein laufendes Spiel."
|
|
: "Kein laufendes Spiel. Bitte anmelden.",
|
|
toastId: session?.user ? "postRedirect" : "user",
|
|
theme: session?.user ? "dark" : undefined,
|
|
type: gameId ? "success" : "info",
|
|
},
|
|
error: {
|
|
render: "Es ist ein Fehler aufgetreten 🤯",
|
|
type: "error",
|
|
theme: "colored",
|
|
},
|
|
})
|
|
})
|
|
|
|
return (
|
|
<div className="h-full bg-theme">
|
|
<div className="mx-auto flex h-full max-w-screen-md flex-col items-center justify-evenly"></div>
|
|
</div>
|
|
)
|
|
}
|