'use client'; import { useWalletConnection } from '@/hooks/useWalletConnection'; import { api } from '@/lib/api'; import { formatCurrency } from '@/lib/utils'; import { VerificationStatus } from '@/types'; import { useQuery } from '@tanstack/react-query'; import { motion } from 'framer-motion'; import { Award, CheckCircle2, Clock, ExternalLink, Lock, TrendingUp, Wallet, XCircle } from 'lucide-react'; import Link from 'next/link'; import { useEffect } from 'react'; import { Bar, BarChart, CartesianGrid, Line, LineChart, ResponsiveContainer, Tooltip, XAxis, YAxis } from "recharts"; import { LoadingSpinner } from '@/components/ui/LoadingSpinner'; const earningsData = [ { day: "Mon", earnings: 12.5 }, { day: "Tue", earnings: 18.3 }, { day: "Wed", earnings: 15.7 }, { day: "Thu", earnings: 22.1 }, { day: "Fri", earnings: 25.4 }, { day: "Sat", earnings: 19.8 }, { day: "Sun", earnings: 28.6 }, ] const tasksData = [ { day: "Mon", completed: 4 }, { day: "Tue", completed: 6 }, { day: "Wed", completed: 5 }, { day: "Thu", completed: 7 }, { day: "Fri", completed: 8 }, { day: "Sat", completed: 6 }, { day: "Sun", completed: 9 }, ] export default function DashboardPage() { const { isConnected, address, connect } = useWalletConnection(); const { data: profileData, isLoading: profileLoading, refetch: refetchProfile } = useQuery({ queryKey: ['profile'], queryFn: () => api.users.getProfile(), enabled: isConnected, }); const { data: submissionsData, isLoading: submissionsLoading, refetch: refetchSubmissions } = useQuery({ queryKey: ['submissions'], queryFn: () => api.submissions.mySubmissions(), enabled: isConnected, }); // Refetch when wallet connects useEffect(() => { if (isConnected) { refetchProfile(); refetchSubmissions(); } }, [isConnected, refetchProfile, refetchSubmissions]); if (!isConnected) { return (
Please connect your wallet to view your dashboard and track your earnings
No submissions yet
| Task | Amount | Status | Date | Action |
{submission.task.title}
|
{formatCurrency(submission.task.paymentAmount)}
|
|
{new Date(submission.createdAt).toLocaleDateString()} |
View Details
|
|---|