import React from 'react';
import Link from 'next/link';
import {
Plus,
FileText,
Database,
Layout,
ArrowRight,
Calendar,
Users,
TrendingUp,
Eye,
Edit3,
Layers
} from 'lucide-react';
import { Button } from '@/components/ui/button';
export interface ContentType {
id: string;
name: string;
apiIdentifier: string;
description?: string | null;
_count: {
entries: number;
};
entries: any[];
}
export interface Plan {
id: string;
mainTitle: string;
createdAt: Date;
}
export interface ViewContentProps {
contentTypes: ContentType[];
plans: Plan[];
allContentEntries: any[];
}
// Editorial content card component
const ContentCard = ({ icon: Icon, title, description, count, action, href }: {
icon: React.ElementType;
title: string;
description: string;
count: number;
action: string;
href: string;
}) => (
{title}
{description}
);
// Editorial template card component
const RecentTemplateCard = ({ template }: { template: Plan }) => (
{template.mainTitle}
{new Date(template.createdAt).toLocaleDateString('es-ES')}
);
export function ViewContentComponent({ contentTypes, plans, allContentEntries }: ViewContentProps) {
// Cálculos de métricas
const totalContent = allContentEntries?.length || 0;
const totalTemplates = plans?.length || 0;
const totalContentTypes = contentTypes?.length || 0;
// Plantillas recientes (últimas 3)
const recentTemplates = plans?.slice(0, 3) || [];
return (
{/* Clean editorial background */}
{/* Editorial header */}
Contenido
Gestiona, crea y organiza todo tu contenido desde un solo lugar
{/* Editorial Stats cards */}
{totalContent}
Total contenido
{totalTemplates}
Plantillas
{totalContentTypes}
Tipos de contenido
{/* Secciones principales */}
{/* CMS Flexible */}
{/* Plantillas */}
{/* Plantillas recientes */}
{recentTemplates.length > 0 && (
Plantillas Recientes
{recentTemplates.map((template) => (
))}
)}
{/* Acciones rápidas */}
Acciones Rápidas
Accede rápidamente a las funciones más utilizadas
);
}