import { useState } from 'react'
import { Navigate, useLocation } from 'react-router-dom'
import type { Location } from 'react-router-dom'
import { Ic, Pattern } from '@/icons'
import { Button } from '@/components/ui/button'
import { Input } from '@/components/ui/input'
import { useAuth, useLoginMutation } from '@/features/auth/use-auth'
import { ApiError } from '@/services/http'
import { siteConfig } from '@/config/site'
import { AqilaLogo } from '@/components/AqilaLogo'
function Field({ label, children }: { label: string; children: React.ReactNode }) {
return (
)
}
export default function LoginPage() {
const location = useLocation()
const { isAuthenticated } = useAuth()
const loginMutation = useLoginMutation()
const [email, setEmail] = useState('')
const [password, setPassword] = useState('')
const [showPassword, setShowPassword] = useState(false)
const from = (location.state as { from?: Location } | null)?.from?.pathname ?? '/'
if (isAuthenticated) {
return
}
const valid = email.trim().length > 0 && password.length > 0
const submit = (e: React.FormEvent) => {
e.preventDefault()
if (!valid || loginMutation.isPending) return
loginMutation.mutate({ email: email.trim(), password })
}
const fillDemo = () => {
setEmail('admin@gmail.com')
setPassword('admin')
}
const errorMessage =
loginMutation.error instanceof ApiError
? loginMutation.error.message
: loginMutation.error
? 'ورود ناموفق بود. دوباره تلاش کنید.'
: null
return (
{/* لوگو و نام برند */}
{siteConfig.name}
ورود به پنل مدیریت و داشبورد
{/* کارت لاگین */}
پشتیبانی از قالبهای سفارشی و اتصال مستقیم به API
)
}