'use client'; import { useState } from 'react'; import { zodResolver } from '@hookform/resolvers/zod'; import { useRouter, useSearchParams } from 'next/navigation'; import { signIn } from 'next-auth/react'; import { useForm } from 'react-hook-form'; import { z } from 'zod'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from '@/components/ui/card'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { DEMO_PASSWORD } from '@/lib/constants'; import { demoUsers } from '@/lib/mock-data'; const loginSchema = z.object({ email: z.string().min(1, 'Kullanici veya e-posta gerekli'), password: z.string().min(1, 'Sifre gerekli'), }); type LoginValues = z.infer; export function LoginForm() { const router = useRouter(); const searchParams = useSearchParams(); const [error, setError] = useState(null); const callbackUrl = searchParams.get('callbackUrl') ?? '/'; const form = useForm({ resolver: zodResolver(loginSchema), defaultValues: { email: 'admin@ajet.com.tr', password: DEMO_PASSWORD, }, }); async function onSubmit(values: LoginValues) { setError(null); const result = await signIn('credentials', { email: values.email, password: values.password, redirect: false, callbackUrl, }); if (result?.error) { setError('E-posta veya sifre hatali'); return; } router.push(callbackUrl); router.refresh(); } return ( AJet Acente 360 Veritabanisiz MVP demo girisi
{form.formState.errors.email && (

{form.formState.errors.email.message}

)}
{form.formState.errors.password && (

{form.formState.errors.password.message}

)}
{error && (

{error}

)}

Demo sifre: {DEMO_PASSWORD}

Hizli tur icin hesaplar:

{demoUsers.map((user) => ( ))}
); }