diff --git a/public/scene/level/skybox/1.png b/public/scene/level/skybox/1.png new file mode 100644 index 0000000..5a4e836 Binary files /dev/null and b/public/scene/level/skybox/1.png differ diff --git a/public/scene/level/skybox/2.png b/public/scene/level/skybox/2.png new file mode 100644 index 0000000..e3e428d Binary files /dev/null and b/public/scene/level/skybox/2.png differ diff --git a/public/scene/level/skybox/3.png b/public/scene/level/skybox/3.png new file mode 100644 index 0000000..ba05cd5 Binary files /dev/null and b/public/scene/level/skybox/3.png differ diff --git a/public/scene/level/skybox/4.png b/public/scene/level/skybox/4.png new file mode 100644 index 0000000..b474cb6 Binary files /dev/null and b/public/scene/level/skybox/4.png differ diff --git a/public/scene/level/skybox/5.png b/public/scene/level/skybox/5.png new file mode 100644 index 0000000..6160aca Binary files /dev/null and b/public/scene/level/skybox/5.png differ diff --git a/public/scene/level/skybox/6.png b/public/scene/level/skybox/6.png new file mode 100644 index 0000000..5d56f71 Binary files /dev/null and b/public/scene/level/skybox/6.png differ diff --git a/src/app/[lang]/admin/login/page.tsx b/src/app/[lang]/admin/login/page.tsx index 59563ef..dc22d19 100644 --- a/src/app/[lang]/admin/login/page.tsx +++ b/src/app/[lang]/admin/login/page.tsx @@ -1,6 +1,8 @@ import Image from "next/image"; import { redirect } from "next/navigation"; -import { auth, signIn } from "@lib/auth"; +import { signInGithub } from "@actions/login/signInGithub"; +import { signInGoogle } from "@actions/login/signInGoogle"; +import { auth } from "@lib/auth"; import { getDictionnary, type Locale } from "@lib/getDictionnary"; import { AspectRatio } from "@ui/AspectRatio"; import { Button } from "@ui/button"; @@ -13,20 +15,6 @@ export default async function AdminLoginPage({ params }: { params: { lang: strin const session = await auth(); if (session) return redirect("/admin"); - async function signInGithub() { - "use server"; - const url = (await signIn("github", { redirect: false })) as string; - // TODO: Should be fixed after next-auth@5 is stable - redirect(url.replace("signin", "api/auth/signin")); - } - - async function signInGoogle() { - "use server"; - const url = (await signIn("google", { redirect: false })) as string; - // TODO: Should be fixed after next-auth@5 is stable - redirect(url.replace("signin", "api/auth/signin")); - } - return (
diff --git a/src/app/_actions/login/signInGithub.ts b/src/app/_actions/login/signInGithub.ts new file mode 100644 index 0000000..e222813 --- /dev/null +++ b/src/app/_actions/login/signInGithub.ts @@ -0,0 +1,10 @@ +"use server"; + +import { redirect } from "next/navigation"; +import { signIn } from "@lib/auth"; + +export async function signInGithub() { + const url = (await signIn("github", { redirect: false })) as string; + // TODO: Should be fixed after next-auth@5 is stable + redirect(url.replace("signin", "api/auth/signin")); +} diff --git a/src/app/_actions/login/signInGoogle.ts b/src/app/_actions/login/signInGoogle.ts new file mode 100644 index 0000000..4f619d9 --- /dev/null +++ b/src/app/_actions/login/signInGoogle.ts @@ -0,0 +1,10 @@ +"use server"; + +import { redirect } from "next/navigation"; +import { signIn } from "@lib/auth"; + +export async function signInGoogle() { + const url = (await signIn("google", { redirect: false })) as string; + // TODO: Should be fixed after next-auth@5 is stable + redirect(url.replace("signin", "api/auth/signin")); +} diff --git a/src/app/_actions/startGame.ts b/src/app/_actions/startGame.ts index 2168e40..d731503 100644 --- a/src/app/_actions/startGame.ts +++ b/src/app/_actions/startGame.ts @@ -8,8 +8,13 @@ import { auth } from "@lib/auth"; export const startGame = async () => { const session = await auth(); - if (!session) throw new Error("Unauthorized"); + if (!session) { + return { + type: "error" as const, + }; + } const user = (await preparedUserEmail.execute({ email: session.user!.email }))[0]; const game = await db.insert(games).values({ userId: user.id }).returning(); + // TODO: change dynamically to use correct language redirect(`/fr/game/${game[0].id}`); }; diff --git a/src/modules/scene/GameScene.tsx b/src/modules/scene/GameScene.tsx index babd230..babea06 100644 --- a/src/modules/scene/GameScene.tsx +++ b/src/modules/scene/GameScene.tsx @@ -1,22 +1,32 @@ "use client"; -import { Suspense } from "react"; +import { Suspense, useRef } from "react"; import { CameraControls, useGLTF } from "@react-three/drei"; import { Canvas } from "@react-three/fiber"; +// import { CubeTextureLoader } from "three"; import { GameNavigation } from "@modules/GameNavigation"; import { LoadingScene } from "@modules/scene/LoadingScene"; export type GameSceneProps = React.DetailedHTMLProps, HTMLCanvasElement>; export const GameScene: React.FC = () => { + const controls = useRef(null); + return ( <> - - - + + + + }> + {/* */}