import React, { useState, useEffect } from 'react'; import api, { setAuthToken } from '../api'; import { ItemRead, ItemCreate } from '../types'; interface DashboardProps { token: string; onLogout: () => void; } const Dashboard: React.FC = ({ token, onLogout }) => { const [items, setItems] = useState([]); const [title, setTitle] = useState(''); const [description, setDescription] = useState(''); const [error, setError] = useState(null); useEffect(() => { setAuthToken(token); fetchItems(); }, [token]); const fetchItems = async () => { try { const resp = await api.get('/items/'); setItems(resp.data); } catch (err: any) { setError('Failed to load items'); } }; const handleCreate = async (e: React.FormEvent) => { e.preventDefault(); try { const newItem: ItemCreate = { title, description }; await api.post('/items/', newItem); setTitle(''); setDescription(''); fetchItems(); } catch (err: any) { setError('Failed to create item'); } }; const handleLogout = () => { onLogout(); }; return (

Dashboard

{error &&

{error}

}
setTitle(e.target.value)} required />
setDescription(e.target.value)} />
    {items.map(item => (
  • {item.title}: {item.description}
  • ))}
); }; export default Dashboard;