'use client'; import { useState, useEffect } from 'react'; interface SitemapStats { totalUrls: number; baseUrl: string; lastGenerated: string; routesByPriority: { high: number; medium: number; low: number; }; routesByChangeFreq: Record; } interface ValidationResult { valid: boolean; errors: string[]; } export default function SitemapInfo() { const [stats, setStats] = useState(null); const [validation, setValidation] = useState(null); const [loading, setLoading] = useState(false); const fetchStats = async () => { setLoading(true); try { const response = await fetch('/api/sitemap?action=stats'); const data = await response.json(); setStats(data); } catch (error) { console.error('Failed to fetch sitemap stats:', error); } setLoading(false); }; const fetchValidation = async () => { setLoading(true); try { const response = await fetch('/api/sitemap?action=validate'); const data = await response.json(); setValidation(data); } catch (error) { console.error('Failed to validate sitemap:', error); } setLoading(false); }; useEffect(() => { fetchStats(); fetchValidation(); }, []); if (loading && !stats) { return (
); } return (
{/* Sitemap Stats */} {stats && (

Sitemap Statistics

Total URLs

{stats.totalUrls}

Base URL

{stats.baseUrl}

Priority Distribution

{stats.routesByPriority.high}

High (≥0.8)

{stats.routesByPriority.medium}

Medium (0.5-0.8)

{stats.routesByPriority.low}

Low (<0.5)

Change Frequency

{Object.entries(stats.routesByChangeFreq).map(([freq, count]) => (
{freq} {count}
))}
)} {/* Validation Results */} {validation && (

Validation Results

{validation.valid ? ( ) : ( )} {validation.valid ? 'Sitemap is valid' : 'Sitemap has errors'}
{!validation.valid && validation.errors.length > 0 && (
    {validation.errors.map((error, index) => (
  • • {error}
  • ))}
)}
)} {/* Quick Actions */}

Quick Actions

); }