import { useEffect, useState } from 'react'; import { useParams } from 'react-router-dom'; import type { Item } from '../types'; import FeedItem from './FeedItem'; import './FeedItems.css'; export default function FeedItems() { const { feedId, tagName } = useParams<{ feedId: string; tagName: string }>(); const [items, setItems] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(''); useEffect(() => { setLoading(true); setError(''); let url = '/api/stream'; if (feedId) { url = `/api/stream?feed_id=${feedId}`; } else if (tagName) { url = `/api/stream?tag=${encodeURIComponent(tagName)}`; } fetch(url) .then((res) => { if (!res.ok) { throw new Error('Failed to fetch items'); } return res.json(); }) .then((data) => { setItems(data); setLoading(false); }) .catch((err) => { setError(err.message); setLoading(false); }); }, [feedId, tagName]); if (loading) return
Loading items...
; if (error) return
Error: {error}
; return (

{tagName ? `Tag: ${tagName}` : 'Items'}

{items.length === 0 ? (

No items found.

) : ( )}
); }