77 lines
3.1 KiB
TypeScript
77 lines
3.1 KiB
TypeScript
import { login } from './actions'
|
||
|
||
export default async function LoginPage({
|
||
searchParams,
|
||
}: {
|
||
searchParams: Promise<{ error?: string }>
|
||
}) {
|
||
const params = await searchParams;
|
||
|
||
return (
|
||
<div className="flex min-h-screen flex-col items-center justify-center p-6 bg-slate-50 dark:bg-zinc-950">
|
||
<div className="w-full max-w-md p-10 space-y-10 bg-white dark:bg-zinc-900 rounded-[2.5rem] shadow-sm border border-slate-100 dark:border-zinc-800">
|
||
|
||
<div className="text-center">
|
||
<h2 className="text-3xl font-bold tracking-tight text-slate-900 dark:text-white">
|
||
Abisena Giriş
|
||
</h2>
|
||
<p className="mt-3 text-sm font-medium text-slate-500 dark:text-slate-400">
|
||
Personel Takip Sistemine Giriş Yapın
|
||
</p>
|
||
</div>
|
||
|
||
<form className="space-y-8" action={login}>
|
||
{params?.error && (
|
||
<div className="p-4 text-sm font-bold text-rose-600 bg-rose-50 dark:bg-rose-500/10 border border-rose-100 dark:border-rose-500/20 rounded-2xl text-center">
|
||
E-posta adresi veya şifre hatalı.
|
||
</div>
|
||
)}
|
||
|
||
<div className="space-y-2">
|
||
<label
|
||
htmlFor="email"
|
||
className="block text-sm font-bold text-slate-700 dark:text-slate-300 ml-1"
|
||
>
|
||
E-posta Adresi
|
||
</label>
|
||
<input
|
||
id="email"
|
||
name="email"
|
||
type="email"
|
||
autoComplete="email"
|
||
required
|
||
className="block w-full rounded-2xl border-0 py-3.5 px-4 text-slate-900 shadow-sm ring-1 ring-inset ring-slate-200 dark:ring-zinc-700 dark:bg-zinc-800 dark:text-white placeholder:text-slate-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm outline-none transition-all"
|
||
placeholder="admin@abisena.com"
|
||
/>
|
||
</div>
|
||
|
||
<div className="space-y-2">
|
||
<label
|
||
htmlFor="password"
|
||
className="block text-sm font-bold text-slate-700 dark:text-slate-300 ml-1"
|
||
>
|
||
Şifre
|
||
</label>
|
||
<input
|
||
id="password"
|
||
name="password"
|
||
type="password"
|
||
autoComplete="current-password"
|
||
required
|
||
className="block w-full rounded-2xl border-0 py-3.5 px-4 text-slate-900 shadow-sm ring-1 ring-inset ring-slate-200 dark:ring-zinc-700 dark:bg-zinc-800 dark:text-white placeholder:text-slate-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm outline-none transition-all"
|
||
placeholder="••••••••"
|
||
/>
|
||
</div>
|
||
|
||
<button
|
||
type="submit"
|
||
className="flex w-full justify-center rounded-2xl bg-indigo-600 px-4 py-4 text-sm font-bold leading-6 text-white shadow-sm shadow-indigo-100 dark:shadow-none hover:bg-indigo-700 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 transition-all active:scale-95"
|
||
>
|
||
Giriş Yap
|
||
</button>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
)
|
||
}
|