"use client"; import { useState } from "react"; import { signIn } from "next-auth/react"; import { useRouter, useSearchParams } from "next/navigation"; import { Anchor } from "lucide-react"; export default function LoginPage() { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState(""); const [loading, setLoading] = useState(false); const router = useRouter(); const searchParams = useSearchParams(); const callbackUrl = searchParams.get("callbackUrl") ?? "/dashboard"; async function handleSubmit(e: React.FormEvent) { e.preventDefault(); setLoading(true); setError(""); const result = await signIn("credentials", { email, password, redirect: false, }); if (result?.error) { setError("Invalid email or password. Please try again."); setLoading(false); } else { router.push(callbackUrl); router.refresh(); } } return (

PPMS

Pelagia Payment Management System

PMS — it runs the ship.

Sign in

setEmail(e.target.value)} className="w-full rounded-lg border border-neutral-300 px-3 py-2.5 text-sm text-neutral-900 placeholder:text-neutral-400 focus:border-primary-500 focus:outline-none focus:ring-2 focus:ring-primary-500/20" placeholder="you@company.com" />
setPassword(e.target.value)} className="w-full rounded-lg border border-neutral-300 px-3 py-2.5 text-sm text-neutral-900 placeholder:text-neutral-400 focus:border-primary-500 focus:outline-none focus:ring-2 focus:ring-primary-500/20" placeholder="••••••••" />
{error && (

{error}

)}

Contact your administrator if you need access.

); }