"use client" import { useAuth } from "@/context/auth-context" import { useEffect, useState } from "react" import { useRouter } from "next/navigation" import { User, LogOut, Settings, Trophy, BookOpen, Target, TrendingUp, Wallet, Mail, Calendar, Award, BarChart3, Activity, Edit3, Save, X } from "lucide-react" export default function DashboardPage() { const { user, firebaseUser, walletConnected, logout, authMethod } = useAuth() const router = useRouter() const [isEditingProfile, setIsEditingProfile] = useState(false) const [profileData, setProfileData] = useState({ name: user?.name || '', bio: user?.bio || '', avatar: user?.avatar || '' }) const [stats, setStats] = useState({ coursesCompleted: 12, totalXP: 2450, currentStreak: 7, rank: 156, certificatesEarned: 3, hoursLearned: 45 }) useEffect(() => { if (!user && !firebaseUser) { router.replace("/auth/login") } }, [user, firebaseUser, router]) const handleProfileUpdate = async () => { try { // Here you would call your API to update profile // await updateProfile(profileData) setIsEditingProfile(false) console.log("Profile updated:", profileData) } catch (error) { console.error("Failed to update profile:", error) } } if (!user && !firebaseUser) { return (
) } return (
{/* Professional Header */}

OpenLearnX

Learn • Earn • Grow

{/* Main Dashboard Content */}
{/* Welcome Section */}

Welcome back! 👋

Ready to continue your learning journey?

{authMethod === "metamask" && user ? (
Connected: {user.wallet_address.slice(0, 6)}...{user.wallet_address.slice(-4)}
) : firebaseUser && (
{firebaseUser.email}
)}
{/* Stats Grid */}

Total XP

{stats.totalXP.toLocaleString()}

+12% from last week

Courses

{stats.coursesCompleted}

3 in progress

Streak

{stats.currentStreak} days

🔥 Keep it up!

Global Rank

#{stats.rank}

Top 5% learner
{/* Main Content Grid */}
{/* Profile Card with Edit Functionality */}

Profile

{isEditingProfile ? (
setProfileData({...profileData, name: e.target.value})} placeholder="Your name" className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500 text-center" />