"use client"; import { useState } from "react"; import { toast, Toaster } from "sonner"; import { motion } from "framer-motion"; import { useTranslation } from "react-i18next"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Checkbox } from "@/components/ui/checkbox"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; import { HelpCircle, Loader2, Key, LockKeyhole } from "lucide-react"; import { cn } from "@/lib/utils"; import { AnimatedGridPattern } from "@/components/ui/animated-grid-pattern"; export default function TokenPage() { const [token, setToken] = useState(""); const [loading, setLoading] = useState(false); const [showToken, setShowToken] = useState(false); const { t } = useTranslation("common"); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!token.trim()) { toast.error(t("auth.accessTokenRequired")); return; } setLoading(true); try { localStorage.setItem("access_token", token); const res = await fetch("/api/v1/config", { headers: { Authorization: `Bearer ${token}`, }, }); if (res.ok) { toast.success(t("auth.loginSuccess")); window.location.href = "/"; } else { toast.error(t("auth.invalidToken")); localStorage.removeItem("access_token"); } } catch (error) { toast.error(t("auth.verificationFailed")); localStorage.removeItem("access_token"); } finally { setLoading(false); } }; return (