"use client" import { useState } from "react" import { useAuth } from "@/context/auth-context" import { Button } from "@/components/ui/button" import { Loader2 } from "lucide-react" import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { toast } from "react-hot-toast" export function AuthButtons() { const { user, isLoadingAuth, authMethod, connectWallet, loginWithEmail, signupWithEmail, logout } = useAuth() const [email, setEmail] = useState("") const [password, setPassword] = useState("") const [username, setUsername] = useState("") const [isAuthModalOpen, setIsAuthModalOpen] = useState(false) const handleEmailLogin = async () => { if (!email.trim() || !password.trim()) { toast.error("Please enter email and password") return } const success = await loginWithEmail(email, password) if (success) { setIsAuthModalOpen(false) setEmail("") setPassword("") } } const handleEmailSignup = async () => { if (!email.trim() || !password.trim() || !username.trim()) { toast.error("Please fill in all fields") return } if (password.length < 6) { toast.error("Password must be at least 6 characters") return } const success = await signupWithEmail(email, password, username) if (success) { setIsAuthModalOpen(false) setEmail("") setPassword("") setUsername("") } } const displayAddress = user?.wallet_address || user?.email || "Guest" return (
{authMethod && user ? ( <> {authMethod === "metamask" && user.wallet_address ? `${user.wallet_address.slice(0, 6)}...${user.wallet_address.slice(-4)}` : user.email || displayAddress} ) : ( Choose your authentication method MetaMask Email

Connect your MetaMask wallet for full access to courses, coding, and blockchain features.

Use email to access courses and quizzes.

Login Sign Up
setEmail(e.target.value)} className="dark:bg-gray-700 dark:border-gray-600" />
setPassword(e.target.value)} className="dark:bg-gray-700 dark:border-gray-600" />
setUsername(e.target.value)} className="dark:bg-gray-700 dark:border-gray-600" />
setEmail(e.target.value)} className="dark:bg-gray-700 dark:border-gray-600" />
setPassword(e.target.value)} className="dark:bg-gray-700 dark:border-gray-600" />
)}
) }