modifica a login
This commit is contained in:
parent
487983bf3e
commit
1a81ef0865
7 changed files with 72 additions and 48 deletions
BIN
immagini/Home.jpg
Normal file
BIN
immagini/Home.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 227 KiB |
BIN
public/Home.jpg
Normal file
BIN
public/Home.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 227 KiB |
BIN
public/images/Home.jpg
Normal file
BIN
public/images/Home.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 227 KiB |
|
|
@ -1,15 +1,28 @@
|
|||
export default function MainLayout({
|
||||
import { redirect } from "next/navigation";
|
||||
|
||||
import { auth } from "@/src/auth";
|
||||
import SignOutButton from "@/src/components/auth/SignOutButton";
|
||||
import Navbar from "@/src/components/Navbar";
|
||||
|
||||
export default async function MainLayout({
|
||||
children,
|
||||
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}) {
|
||||
const session = await auth();
|
||||
|
||||
if (!session?.user) {
|
||||
redirect("/login");
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Navbar actions={<SignOutButton />} />
|
||||
<p className="bg-violet-700 text-white w-full text-center py-2">
|
||||
Sono del layout (main)
|
||||
</p>
|
||||
<main>{children}</main>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
import { redirect } from "next/navigation";
|
||||
|
||||
import { auth } from "@/src/auth";
|
||||
import SignOutButton from "@/src/components/auth/SignOutButton";
|
||||
import Navbar from "@/src/components/Navbar";
|
||||
|
||||
export default async function ManagementLayout({
|
||||
children,
|
||||
|
|
@ -15,6 +17,7 @@ export default async function ManagementLayout({
|
|||
|
||||
return (
|
||||
<div>
|
||||
<Navbar actions={<SignOutButton />} />
|
||||
<header className="border-b border-zinc-200 bg-white">
|
||||
<div className="mx-auto flex max-w-6xl items-center justify-between px-4 py-3">
|
||||
<div>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,5 @@
|
|||
import type { Metadata } from "next";
|
||||
import { Inter, JetBrains_Mono } from "next/font/google";
|
||||
import { auth } from "@/src/auth";
|
||||
import SignOutButton from "@/src/components/auth/SignOutButton";
|
||||
import Navbar from "../components/Navbar";
|
||||
import "./globals.css";
|
||||
|
||||
/** Stesse variabili CSS di globals.css; Geist non è disponibile in next/font su Next 14. */
|
||||
|
|
@ -26,15 +23,12 @@ export default async function RootLayout({
|
|||
}: Readonly<{
|
||||
children: React.ReactNode;
|
||||
}>) {
|
||||
const session = await auth();
|
||||
|
||||
return (
|
||||
<html lang="en">
|
||||
<body className={`${geistSans.variable} ${geistMono.variable} h-full antialiased`}>
|
||||
<p className="bg-purple-700 text-white w-full text-center py-2">
|
||||
Sono del layout root
|
||||
</p>
|
||||
{session?.user ? <Navbar actions={<SignOutButton />} /> : null}
|
||||
{children}
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import Image from "next/image";
|
||||
import { AuthError } from "next-auth";
|
||||
import { redirect } from "next/navigation";
|
||||
|
||||
|
|
@ -52,51 +53,64 @@ export default async function LoginPage({ searchParams }: LoginPageProps) {
|
|||
const hasError = params?.error === "CredentialsSignin";
|
||||
|
||||
return (
|
||||
<main className="flex min-h-[calc(100vh-4rem)] items-center justify-center bg-zinc-50 px-4 py-12">
|
||||
<section className="w-full max-w-sm rounded-lg border border-zinc-200 bg-white p-6 shadow-sm">
|
||||
<div className="mb-6">
|
||||
<main className="flex min-h-screen items-center justify-center bg-zinc-50 px-4 py-12">
|
||||
<section className="w-full max-w-sm overflow-hidden rounded-lg border border-zinc-200 bg-white shadow-sm">
|
||||
<div className="relative h-48 w-full bg-zinc-100">
|
||||
<Image
|
||||
src="/images/Home.jpg"
|
||||
alt="MagRicambi"
|
||||
fill
|
||||
priority
|
||||
className="object-contain"
|
||||
sizes="(max-width: 640px) 100vw, 384px"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="p-6">
|
||||
<div className="mb-6">
|
||||
<h1 className="text-2xl font-semibold text-zinc-950">Accesso</h1>
|
||||
<p className="mt-2 text-sm text-zinc-600">
|
||||
Entra in MagRicambi con utente o email.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{hasError ? (
|
||||
<p className="mb-4 rounded-md border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700">
|
||||
Credenziali non valide oppure utente non attivo.
|
||||
</p>
|
||||
) : null}
|
||||
|
||||
<form action={login} className="space-y-4">
|
||||
<label className="block">
|
||||
<span className="text-sm font-medium text-zinc-700">Utente o email</span>
|
||||
<input
|
||||
required
|
||||
autoComplete="username"
|
||||
name="identifier"
|
||||
type="text"
|
||||
className="mt-1 w-full rounded-md border border-zinc-300 px-3 py-2 text-zinc-950 outline-none transition-colors focus:border-zinc-900"
|
||||
/>
|
||||
</label>
|
||||
|
||||
<label className="block">
|
||||
<span className="text-sm font-medium text-zinc-700">Password</span>
|
||||
<input
|
||||
required
|
||||
autoComplete="current-password"
|
||||
name="password"
|
||||
type="password"
|
||||
className="mt-1 w-full rounded-md border border-zinc-300 px-3 py-2 text-zinc-950 outline-none transition-colors focus:border-zinc-900"
|
||||
/>
|
||||
</label>
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
className="w-full rounded-md bg-zinc-950 px-4 py-2 font-medium text-white transition-colors hover:bg-zinc-800"
|
||||
>
|
||||
Accedi
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{hasError ? (
|
||||
<p className="mb-4 rounded-md border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700">
|
||||
Credenziali non valide oppure utente non attivo.
|
||||
</p>
|
||||
) : null}
|
||||
|
||||
<form action={login} className="space-y-4">
|
||||
<label className="block">
|
||||
<span className="text-sm font-medium text-zinc-700">Utente o email</span>
|
||||
<input
|
||||
required
|
||||
autoComplete="username"
|
||||
name="identifier"
|
||||
type="text"
|
||||
className="mt-1 w-full rounded-md border border-zinc-300 px-3 py-2 text-zinc-950 outline-none transition-colors focus:border-zinc-900"
|
||||
/>
|
||||
</label>
|
||||
|
||||
<label className="block">
|
||||
<span className="text-sm font-medium text-zinc-700">Password</span>
|
||||
<input
|
||||
required
|
||||
autoComplete="current-password"
|
||||
name="password"
|
||||
type="password"
|
||||
className="mt-1 w-full rounded-md border border-zinc-300 px-3 py-2 text-zinc-950 outline-none transition-colors focus:border-zinc-900"
|
||||
/>
|
||||
</label>
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
className="w-full rounded-md bg-zinc-950 px-4 py-2 font-medium text-white transition-colors hover:bg-zinc-800"
|
||||
>
|
||||
Accedi
|
||||
</button>
|
||||
</form>
|
||||
</section>
|
||||
</main>
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue