import { useState, useEffect } from 'react' import { useParams, Link } from 'react-router-dom' import { API_BASE, type Article, type Category } from '../types' import Navbar from '../components/Navbar' import Footer from '../components/Footer' import { ArrowLeft, Loader2 } from 'lucide-react' export default function ArticleReaderPage() { const { slug } = useParams() const [article, setArticle] = useState
(null) const [categories, setCategories] = useState([]) const [loading, setLoading] = useState(true) useEffect(() => { fetch(`${API_BASE}/categories`).then(r => r.json()).then(setCategories).catch(console.error) fetch(`${API_BASE}/articles/${slug}`) .then(res => { if (!res.ok) throw new Error() return res.json() }) .then(setArticle) .catch(() => setArticle(null)) .finally(() => setLoading(false)) }, [slug]) if (loading) return (
) if (!article) return (

Article not found

Return to Scent Guide
) return (
{/* Header */}
Go Back

{new Date(article.createdAt).toLocaleDateString('en-US', { month: 'long', day: 'numeric', year: 'numeric' })}

{article.title}

{/* Cover Image */} {article.coverImage && (
{article.title}
)} {/* Content Body */}
) }