import React, { useEffect, useState } from 'react';
import { ArrowLeft, User, Calendar, Share2, Copy, Check, MessageCircle, Linkedin, Facebook, Twitter, X } from 'lucide-react';
import { Link, useParams } from 'react-router-dom';
import { motion, AnimatePresence } from 'motion/react';
import { MOCK_POSTS, MOCK_POSTSList } from '../data/posts';
export function BlogPost() {
const { id } = useParams();
const post = id ? MOCK_POSTS[id] : null;
const [showShareMenu, setShowShareMenu] = useState(false);
const [copied, setCopied] = useState(false);
useEffect(() => {
window.scrollTo({ top: 0, behavior: 'instant' });
}, [id]);
if (!post) {
return (
Artigo não encontrado
Voltar para o Blog
);
}
const url = window.location.href;
const encodedUrl = encodeURIComponent(url);
const encodedTitle = encodeURIComponent(post.title);
const copyToClipboard = () => {
navigator.clipboard.writeText(url);
setCopied(true);
setTimeout(() => setCopied(false), 2000);
};
const shareLinks = [
{
name: 'WhatsApp',
icon: MessageCircle,
href: `https://api.whatsapp.com/send?text=${encodedTitle}%20${encodedUrl}`,
color: 'hover:text-green-500 hover:bg-green-50'
},
{
name: 'LinkedIn',
icon: Linkedin,
href: `https://www.linkedin.com/sharing/share-offsite/?url=${encodedUrl}`,
color: 'hover:text-blue-600 hover:bg-blue-50'
},
{
name: 'Facebook',
icon: Facebook,
href: `https://www.facebook.com/sharer/sharer.php?u=${encodedUrl}`,
color: 'hover:text-blue-500 hover:bg-blue-50'
},
{
name: 'X (Twitter)',
icon: Twitter,
href: `https://twitter.com/intent/tweet?url=${encodedUrl}&text=${encodedTitle}`,
color: 'hover:text-gray-900 hover:bg-gray-100'
}
];
const relatedPosts = MOCK_POSTSList.filter(p => p.category === post.category && p.id !== post.id).slice(0, 3);
if (relatedPosts.length < 3) {
const morePosts = MOCK_POSTSList.filter(p => !relatedPosts.includes(p) && p.id !== post.id);
relatedPosts.push(...morePosts.slice(0, 3 - relatedPosts.length));
}
return (
{/* ... (rest of the content is unchanged) */}
Todos os artigos
{/* Header */}
{post.category}
{post.title}
Dr. João Silva
{post.date}
{showShareMenu && (
)}
{/* Featured Image */}
{/* Article Body */}
{/* Render HTML content safely since it's hardcoded mock, but natively prefer Markdown if CMS */}
{/* CTA Section */}
Este conteúdo ajudou em sua situação?
Cada caso demanda uma análise específica. Caso esteja passando por esta situação, avaliarei o seu cenário de forma técnica e sigilosa.
Solicitar Análise de Caso
{/* Artigos Relacionados */}
{relatedPosts.length > 0 && (
Você também pode se interessar por:
{relatedPosts.map((relatedPost, index) => (
{relatedPost.category}
{relatedPost.title}
))}
)}
);
}