"use client"; import { useState, useEffect, useCallback } from "react"; import { Rocket, Flame, Target, Lightbulb, RefreshCw } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Label } from "@/components/ui/label"; import { Switch } from "@/components/ui/switch"; import { toast } from "sonner"; import { apiFetch } from "./types"; export default function TrendsTab() { const [trends, setTrends] = useState([]); const [viralStrategies, setViralStrategies] = useState([]); const [contentIdeas, setContentIdeas] = useState([]); const [trendAnalysis, setTrendAnalysis] = useState(null); const [trendLoading, setTrendLoading] = useState(false); const [includePetInContent, setIncludePetInContent] = useState(false); const loadTrends = useCallback(async () => { try { const result = await apiFetch(`/trends?includePets=${includePetInContent}`); if (result.success) { setTrends(result.trends); setViralStrategies(result.viralStrategies); setContentIdeas(result.contentIdeas); } } catch { toast.error("Error cargando tendencias"); } }, [includePetInContent]); useEffect(() => { loadTrends(); }, [loadTrends]); const handleAnalyzeTrends = async () => { setTrendLoading(true); try { const result = await apiFetch("/trends", { method: "POST", body: JSON.stringify({ niche: "lifestyle", includePets: includePetInContent, daysToViral: 14 }), }); if (result.success) { setTrendAnalysis(result.analysis); toast.success("Análisis de tendencias completado"); } else toast.error(result.error); } catch { toast.error("Error"); } finally { setTrendLoading(false); } }; return (
{trends.slice(0, 8).map((t, i) => (
{String(t.platform || "")} 30 ? "text-red-400" : "text-orange-400"}`} />

{String(t.name)}

+{Number(t.growth).toFixed(1)}%

{String(t.category || "")}

))}
{viralStrategies.length > 0 && ( Estrategias Virales
{viralStrategies.slice(0, 4).map((s, i) => (

{String(s.name)}

{String(s.successRate)}%

{String(s.description)}

{Array.isArray(s.platforms) && s.platforms.slice(0, 3).map((p: string, j: number) => ( {p} ))}
))}
)} {contentIdeas.length > 0 && ( Ideas de Contenido Viral
{contentIdeas.slice(0, 5).map((idea, i) => (

{String(idea.title)}

{String(idea.description)}

{idea.hook &&

Hook: "{String(idea.hook)}"

}
{String(idea.format)} {idea.viralScore &&

Score: {String(idea.viralScore)}

}
))}
)} {trendAnalysis && ( Plan para Viralizar

Tendencias Emergentes

{Array.isArray(trendAnalysis.emergingTrends) && trendAnalysis.emergingTrends.slice(0, 3).map((t: Record, i: number) => (

{String(t.name)}

Potencial: {String(t.potential)}

))}

Recomendaciones

{Array.isArray(trendAnalysis.recommendations) && trendAnalysis.recommendations.slice(0, 4).map((r: string, i: number) => (

• {r}

))}
{trendAnalysis.predictedViralPotential && (

Potencial Viral Estimado:

{String(trendAnalysis.predictedViralPotential)}%

)}
)}
); }