import React, { useState, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import { ShoppingEvent } from '../types'; import { shoppingEventApi } from '../services/api'; const Dashboard: React.FC = () => { const navigate = useNavigate(); const [recentEvents, setRecentEvents] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { fetchRecentEvents(); }, []); const fetchRecentEvents = async () => { try { setLoading(true); const response = await shoppingEventApi.getAll(); // Get the 3 most recent events const recent = response.data .sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime()) .slice(0, 3); setRecentEvents(recent); } catch (error) { console.error('Error fetching recent events:', error); } finally { setLoading(false); } }; return (

Dashboard

Welcome to your product tracker!

{/* Stats Cards */}

Total Shopping Events

-

Total Spent

$-

Unique Items

-

Shops Visited

-

{/* Quick Actions */}

Quick Actions

{/* Recent Activity */}

Recent Shopping Events

{loading ? (
) : recentEvents.length === 0 ? (

No shopping events yet

Get started by adding your first event!

) : (
{recentEvents.map((event) => (

{event.shop.name}

{event.shop.city}

{new Date(event.date).toLocaleDateString()}

{event.products.length > 0 && (

{event.products.length} item{event.products.length !== 1 ? 's' : ''}

)}
{event.total_amount && (

${event.total_amount.toFixed(2)}

)}
))}
)}
); }; export default Dashboard;