'use client'; import { useState, useEffect } from 'react'; import '../neon.css'; import './dashboard.css'; import { MenuDock } from '@/components/ui/shadcn-io/menu-dock'; import { Home, Settings, Bell } from 'lucide-react'; import { Avatar, AvatarImage, AvatarFallback } from '@/components/ui/avatar'; import { jwtexp } from '@/lib/utils'; import { getUserTasks } from '@/api/users.service'; import Calendar from '@/components/Calendar'; const menuItems = [ { label: 'home', icon: Home, onClick: () => console.log('Home clicked') }, { label: 'notify', icon: Bell, onClick: () => console.log('Notifications clicked') }, { label: 'settings', icon: Settings, onClick: () => console.log('Settings clicked') }, ]; export default function Dashboard() { const [loading, setLoading] = useState(true); const [authError, setAuthError] = useState(false); // Fetch tasks useEffect(() => { console.log('Dashboard useEffect triggered'); const fetchTasks = async () => { try { console.log('Starting fetchTasks...'); const token = localStorage.getItem('access_token'); if (token) { console.log('Token found, validating...'); const isTokenValid = await jwtexp(token); if (!isTokenValid) { console.error('Token validation failed'); setAuthError(true); setLoading(false); return; } } else { console.error('No access token found'); setAuthError(true); setLoading(false); return; } console.log('Fetching user tasks...'); const response = await getUserTasks(1); console.log('Tasks from backend:', response); setTasksFromBackend(response); } catch (error) { console.error('Failed to fetch tasks:', error); } finally { setLoading(false); } }; fetchTasks(); }, []); // Get current date and week // Calculate the Monday of current week // Group tasks by day if (loading) { return (
Loading dashboard...
Authentication Error
Please log in again