"use client"; import React, { useState } from "react"; import { useRouter } from "next/navigation"; import { setClientToken } from "../_components/AdminComponents"; import { adminVerifyToken } from "../../../lib/adminApi"; export default function AdminLoginPage() { const router = useRouter(); const [token, setToken] = useState(""); const [error, setError] = useState(null); const [isSubmitting, setIsSubmitting] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!token.trim()) { setError("Please enter the admin token."); return; } setIsSubmitting(true); setError(null); try { const isValid = await adminVerifyToken(token.trim()); if (isValid) { setClientToken(token.trim()); router.push("/console"); } else { setError("Invalid admin bearer token. Please check your credentials."); } } catch (err: any) { setError(err?.message || "Failed to verify token with backend API."); } finally { setIsSubmitting(false); } }; return (

ANL Admin Console

Enter your admin bearer token to manage laboratory datasets.

{error && (
{error}
)}
setToken(e.target.value)} placeholder="e.g. admin123" className="w-full px-3 py-2 border border-line rounded-md bg-ivory text-ink focus:outline-none focus:ring-2 focus:ring-cobalt/50" required />
); }