import React from 'react'; import { motion } from 'framer-motion'; import { Globe, Code2, Image as ImageIcon, Heading, FileText, Tag, ChevronDown, ChevronUp } from 'lucide-react'; import { useState } from 'react'; export const MetadataPanel = ({ metadata }) => { const [isExpanded, setIsExpanded] = useState(false); if (!metadata || Object.keys(metadata).length === 0) return null; const items = [ { icon: , label: 'Title', value: metadata.title }, { icon: , label: 'Description', value: metadata.meta_description }, { icon: , label: 'Generator', value: metadata.generator }, { icon: , label: 'Frameworks', value: metadata.detected_frameworks?.join(', ') }, { icon: , label: 'Headings', value: metadata.heading_count?.toString() }, { icon: , label: 'Images', value: metadata.image_count?.toString() }, { icon: , label: 'Page Size', value: metadata.page_size_kb ? `${metadata.page_size_kb} KB` : null }, ].filter(item => item.value); if (items.length === 0) return null; return ( {isExpanded && ( {items.map((item, idx) => (
{item.icon}
{item.label} {item.value}
))} {/* OG Tags */} {metadata.og_tags && Object.keys(metadata.og_tags).length > 0 && (
Open Graph Tags {Object.entries(metadata.og_tags).map(([key, value]) => (
{key}: {value}
))}
)}
)}
); };