1
0
mirror of https://github.com/Fayorg/calendrier-avant.git synced 2026-05-27 17:18:38 +02:00

add: using nextauth WIP

This commit is contained in:
2023-12-15 15:21:51 +01:00
parent 5f049aad5b
commit 2eaccd52e4
7 changed files with 255 additions and 17 deletions

View File

@@ -0,0 +1,6 @@
import NextAuth from "next-auth";
import { authOptions } from "@lib/authenticate";
const handler = NextAuth(authOptions);
export { handler as GET, handler as POST };

View File

@@ -1,5 +1,6 @@
import prisma from '@/lib/prisma';
import ActiveCard from './ActiveCard';
import { getAuthServerSession } from '@/lib/authenticate';
export default async function Dashboard() {
const tests = await prisma.test.findMany({ select: { isActive: true, isPassed: true, id: true, testOf: { select: { id: true, firstName: true, lastName: true, isTeacher: true } } } });
@@ -7,6 +8,10 @@ export default async function Dashboard() {
const activeTests = tests.filter((test) => test.isActive);
const passedTests = tests.filter((test) => test.isPassed);
const authSession = await getAuthServerSession();
console.log(authSession);
return (
<div>
<h1>Dashboard</h1>

View File

@@ -1,14 +1,15 @@
'use client';
import { Poppins } from 'next/font/google'
import { Check } from 'lucide-react'
import { Poppins } from 'next/font/google';
import { Check } from 'lucide-react';
import { useState, useEffect } from 'react';
import { useRouter } from 'next/navigation';
import logo from '../images/logo.svg';
import Image from "next/image";
import {Input} from "@components/ui/input";
import {white} from "next/dist/lib/picocolors";
import Image from 'next/image';
import { Input } from '@components/ui/input';
import { white } from 'next/dist/lib/picocolors';
import { signIn } from 'next-auth/react';
export default function Home() {
const [password, setPassword] = useState('');
@@ -20,21 +21,27 @@ export default function Home() {
}
}, [router]);
function handleSubmit(event: React.FormEvent<HTMLFormElement>) {
async function handleSubmit(event: React.FormEvent<HTMLFormElement>) {
event.preventDefault();
localStorage.setItem('@password', password);
router.push('/play');
// localStorage.setItem('@password', password);
// router.push('/play');
console.log('Trying to sign in');
const result = await signIn('credentials', {
key: password,
callbackUrl: '/play',
});
}
return (
<div className={"w-full h-screen text-[#F0F0F0] bg-black p-12 flex flex-col items-center justify-center gap-y-28"}>
<Image src={logo} alt={"Logo"} width={100} height={200} className={"mx-auto w-full md:w-[400px]"}/>
<form onSubmit={handleSubmit} className={"flex flex-row gap-4 w-full md:w-[400px]"}>
<div className={'w-full h-screen text-[#F0F0F0] bg-black p-12 flex flex-col items-center justify-center gap-y-28'}>
<Image src={logo} alt={'Logo'} width={100} height={200} className={'mx-auto w-full md:w-[400px]'} />
<form onSubmit={handleSubmit} className={'flex flex-row gap-4 w-full md:w-[400px]'}>
<Input type="password" placeholder="Mot de passe" id="password" name="password" value={password} onChange={(e) => setPassword(e.target.value)}></Input>
<input type="submit" value="Submit" id="submit" className={"hidden"} />
<label htmlFor="submit" className={"w-[54px] h-[54px] bg-secondary rounded-[20px] contents-none grid place-content-center"}>
<Check width={24} height={24} color={"white"}/>
<input type="submit" value="Submit" id="submit" className={'hidden'} />
<label htmlFor="submit" className={'w-[54px] h-[54px] bg-secondary rounded-[20px] contents-none grid place-content-center'}>
<Check width={24} height={24} color={'white'} />
</label>
</form>
</div>