import { useEffect, useState } from "react"; import ArticleCard from "./ArticleCard"; import { ArticlePreview } from "../types"; export default function ArticlesSection() { const [articlePreviews, setArticlePreviews] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { fetch('/api/articles') .then(response => response.json()) .then((data: ArticlePreview[]) => setArticlePreviews(data)) .catch(_ => setError('Failed to fetch articles')) .finally(() => setLoading(false)); }, []); return (

Articles

{articlePreviews.map(articlePreview => ( ))} {!loading && !error && articlePreviews.length === 0 &&

No articles found

} {loading &&

Loading...

} {error &&

{error}

}
) }