diff --git a/app/api/join/route.ts b/app/api/join/route.ts index e69de29..79cae27 100644 --- a/app/api/join/route.ts +++ b/app/api/join/route.ts @@ -0,0 +1,3 @@ +export async function POST(request: Request,) { + +} \ No newline at end of file diff --git a/app/page.tsx b/app/page.tsx index 6a01422..d134491 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,15 +1,17 @@ 'use client'; import { useState } from 'react'; +import { useRouter } from 'next/navigation'; export default function Home() { const [password, setPassword] = useState(''); + const router = useRouter(); function handleSubmit(event: React.FormEvent) { event.preventDefault(); - console.log(password); - setPassword(''); + localStorage.setItem('@password', password); + router.push('/play'); } return ( diff --git a/app/play/page.tsx b/app/play/page.tsx new file mode 100644 index 0000000..20eb301 --- /dev/null +++ b/app/play/page.tsx @@ -0,0 +1,85 @@ +'use client'; + +import { useRouter } from 'next/navigation'; +import { useState, useEffect } from 'react'; + +export default function play() { + const [grade, setGrade] = useState(0); + const router = useRouter(); + let voted; + let password: string | null; + useEffect(() => { + password = localStorage.getItem('@password'); + voted = localStorage.getItem('@voted'); + if (!password) { + router.push('/'); + } + }, []); + + async function handleSubmit(event: React.FormEvent) { + event.preventDefault(); + const response = await fetch('/api/grade', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ grade, key: password }), + }); + const data = await response.json(); + if (response.status == 200) { + localStorage.setItem('@voted', new Date().toString()); + } else { + alert(data.message); + } + } + + return ( +
+

Calendrier-avant

+ + {voted ? ( +

Vous avez déjà voté

+ ) : ( +
+

Cliquer sur la note à la fin de la présentation :

+
+ setGrade(1)}> + +

+ setGrade(1.5)}> + +

+ setGrade(2)}> + +

+ setGrade(2.5)}> + +

+ setGrade(3)}> + +

+ setGrade(3.5)}> + +

+ setGrade(4)}> + +

+ setGrade(4.5)}> + +

+ setGrade(5)}> + +

+ setGrade(5.5)}> + +

+ setGrade(6)}> + +

+ +
+
+ )} +
+ ); +}