import React, { useState, useEffect } from 'react'; import { useParams, Link, useNavigate } from 'react-router-dom'; import { BlogPost as BlogPostType, blogPosts } from '../../data/blogPosts'; import { LoadingSpinner } from '../../components/LoadingSpinner'; import { ShareButtons } from '../../components/ShareButtons'; import { CommentSection } from '../../components/CommentSection'; const BlogPost: React.FC = () => { const { id } = useParams<{ id: string }>(); const navigate = useNavigate(); const [post, setPost] = useState(null); const [isLoading, setIsLoading] = useState(true); useEffect(() => { const loadPost = async () => { try { setIsLoading(true); // Simulate API call await new Promise(resolve => setTimeout(resolve, 500)); const foundPost = blogPosts.find(p => p.id === Number(id)); if (!foundPost) { navigate('/blogs'); return; } setPost(foundPost); } finally { setIsLoading(false); } }; loadPost(); }, [id, navigate]); if (isLoading) return ; if (!post) return null; return (
Back to Blogs
{`${post.character}'s

{post.title}

By {post.character} {post.date} {post.tags && ( <>
{post.tags.map(tag => ( {tag} ))}
)}

{post.content}

); }; export default BlogPost;