import React, { useState, useEffect } from 'react'; import { ShoppingEvent } from '../types'; import { shoppingEventApi } from '../services/api'; const ShoppingEventList: React.FC = () => { const [events, setEvents] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(''); useEffect(() => { fetchEvents(); }, []); const fetchEvents = async () => { try { setLoading(true); const response = await shoppingEventApi.getAll(); setEvents(response.data); } catch (err) { setError('Failed to fetch shopping events'); console.error('Error fetching events:', err); } finally { setLoading(false); } }; if (loading) { return (
); } return (

Shopping Events

{error && (
{error}
)}
{events.length === 0 ? (

No shopping events

Get started by recording your first purchase.

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

{event.shop.name}

{event.shop.city}

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

{event.total_amount && (

${event.total_amount.toFixed(2)}

)}
{event.groceries.length > 0 && (

Items Purchased:

{event.groceries.map((grocery) => (
{grocery.name} ${grocery.price}
))}
)} {event.notes && (

Notes:

{event.notes}

)}
Event #{event.id} • {new Date(event.created_at).toLocaleDateString()}
))}
)}
); }; export default ShoppingEventList;