feat: interactive seguimiento timeline and channel evolution

Sync Superhuman Docs seguimiento/KPI pages into the portal (never passwords)
and show clients a dynamic timeline plus per-channel kpi_weekly charts.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
4Ventures
2026-09-22 21:34:21 +02:00
parent 6607a02bff
commit 64156383ca
14 changed files with 1754 additions and 1 deletions

View File

@@ -9,7 +9,8 @@ import {
Layers,
LogOut,
UserCheck,
CalendarDays
CalendarDays,
Radio
} from 'lucide-react';
import { createClient } from '@/lib/supabase/server';
import { logoutAction } from '@/app/auth/actions';
@@ -55,6 +56,13 @@ export default async function DashboardLayout({
<BarChart3 className="w-4 h-4 text-brand-500" />
Métricas
</Link>
<Link
href="/dashboard/seguimiento"
className="flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium text-gray-300 hover:text-white hover:bg-gray-800/60 transition-all"
>
<Radio className="w-4 h-4 text-sky-400" />
Seguimiento
</Link>
<Link
href="/dashboard/estrategia"
className="flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium text-gray-300 hover:text-white hover:bg-gray-800/60 transition-all"

View File

@@ -0,0 +1,16 @@
import React from 'react';
import { createClient } from '@/lib/supabase/server';
import { redirect } from 'next/navigation';
import SeguimientoBoard from '@/components/SeguimientoBoard';
export const dynamic = 'force-dynamic';
export default async function SeguimientoPage() {
const supabase = await createClient();
const {
data: { user },
} = await supabase.auth.getUser();
if (!user) redirect('/login');
return <SeguimientoBoard />;
}