"use client"; import { useEffect, useState } from 'react'; import { useKnowledgeBaseArticle } from '@/lib/hooks/useSupport'; import { markArticleHelpful } from '@/lib/api/supportService'; interface KnowledgeBaseArticleModalProps { slug: string; onClose: () => void; } const KnowledgeBaseArticleModal = ({ slug, onClose }: KnowledgeBaseArticleModalProps) => { const { article, loading, error } = useKnowledgeBaseArticle(slug); const [feedbackGiven, setFeedbackGiven] = useState(false); useEffect(() => { // Prevent body scroll when modal is open document.body.style.overflow = 'hidden'; return () => { document.body.style.overflow = 'unset'; }; }, []); const handleFeedback = async (helpful: boolean) => { if (!article || feedbackGiven) return; try { await markArticleHelpful(slug, helpful); setFeedbackGiven(true); } catch (error) { } }; const formatDate = (dateString: string) => { const date = new Date(dateString); return date.toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' }); }; return (
e.stopPropagation()}>
{loading && (
Loading...

Loading article...

)} {error && (

Error Loading Article

{error}

)} {article && ( <>
{article.is_featured && ( Featured )}

{article.title}

{article.category_name} {formatDate(article.published_at || article.created_at)} {article.view_count} views

Was this article helpful?

{feedbackGiven ? (

Thank you for your feedback!

) : (
)}
)}
); }; export default KnowledgeBaseArticleModal;