"use client"; import { useEffect, useState } from "react"; import { useRouter } from "next/navigation"; import DarkThemeLayout from "../components/DarkThemeLayout"; import Navbar from "../components/Navbar"; import TaskList from "../components/TaskList"; interface User { username: string; points: number; } export default function TasksPage() { const router = useRouter(); const [user, setUser] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { const token = localStorage.getItem("token"); if (!token) { router.push("/login"); return; } fetchUserData(); }, [router]); const fetchUserData = async () => { try { const token = localStorage.getItem("token"); const response = await fetch("/api/users/me", { headers: { Authorization: `Bearer ${token}` }, }); if (!response.ok) { throw new Error("Failed to fetch user data"); } const data = await response.json(); if (data.success && data.data) { setUser({ username: data.data.name, points: data.data.pointsBalance || 0, }); } } catch (error) { console.error("Error fetching user data:", error); localStorage.removeItem("token"); router.push("/login"); } finally { setLoading(false); } }; if (loading) { return (
); } if (!user) { return null; } return ( <>

Available Tasks

Complete tasks to earn points and climb the leaderboard

); }