import React, { useState } from 'react' import './ComprehensiveMetrics.css' function ComprehensiveMetrics({ metricsData, hookpilotStatus }) { const [expandedDomain, setExpandedDomain] = useState(null) if (!metricsData || metricsData.length === 0) { return null } const toggleDomainDetails = (domain) => { setExpandedDomain(expandedDomain === domain ? null : domain) } const getStageColor = (stage) => { switch (stage) { case 'NEW': return '#ff6b6b' case 'GROWING': return '#ffa726' case 'ESTABLISHED': return '#66bb6a' case 'ERROR': return '#9e9e9e' default: return '#9e9e9e' } } const getStageIcon = (stage) => { switch (stage) { case 'NEW': return '🌱' case 'GROWING': return '📈' case 'ESTABLISHED': return '🏆' case 'ERROR': return '❌' default: return '❓' } } const renderTopKeywords = (keywords) => { if (!keywords || keywords.length === 0) { return No keywords data } return (
Complete SEO analysis with all required metrics for SEO maturity assessment
| Actions | Domain | Authority Score | Organic Keywords | Top 10 Keywords | Referring Domains | Monthly Traffic | Top Categories | Stage |
|---|---|---|---|---|---|---|---|---|
| {!domainData.error && ( )} | {domainData.domain} {index === 0 && Client} | {domainData.error ? 'Error' : domainData.authorityScore?.toLocaleString()} | {domainData.error ? 'Error' : domainData.organicKeywords?.toLocaleString()} | {domainData.error ? 'Error' : renderTopKeywords(domainData.top10Keywords)} | {domainData.error ? 'Error' : domainData.referringDomains?.toLocaleString()} | {domainData.error ? 'Error' : domainData.monthlyTraffic?.toLocaleString()} | {domainData.error ? 'Error' : renderTopCategories(domainData.topCategories)} | {getStageIcon(domainData.stage)} {domainData.stage} |
| {renderDetailedView(domainData)} | ||||||||