"use client";
import React from "react";
import { motion } from "framer-motion";
import {
FileText,
Plus,
TrendingUp,
Eye,
Calendar,
ChevronRight,
ArrowUpRight,
ArrowRight,
} from "lucide-react";
import Link from "next/link";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Sidebar } from "@/components/Sidebar";
type Organization = {
id: string;
name: string;
logoUrl: string | null;
primaryColor: string;
};
type UserType = {
id: string;
name: string | null;
email: string;
role: string;
};
type DashboardStats = {
docCount: number;
viewCount: number;
downloadCount: number;
recentDocs: any[];
};
export default function DashboardClient({
user,
organization,
stats,
}: {
user: UserType;
organization: Organization;
stats: DashboardStats;
}) {
const primaryColor = organization.primaryColor || "#2563eb";
const formatDate = (date: Date) => {
return new Date(date).toLocaleDateString("pt-BR", {
day: "2-digit",
month: "short",
});
};
return (
{/* Main Content Area */}
{/* Top Banner / Hero - Integrated Background */}
Overview Panel
Dashboard
Bem-vindo, Administrador {user.name?.split(' ')[0] || "Administrador"}.
{/* Faded accent circle */}
{/* Stats Grid - Large and minimalist */}
Total de Documentos
{stats.docCount}
Visualizações Totais
{stats.viewCount.toLocaleString()}
Downloads Totais
{stats.downloadCount.toLocaleString()}
{/* Recent Documents Table - More integrated */}
Atividade Recente
Ver Todos
{stats.recentDocs.length === 0 ? (
Nenhum documento encontrado.
) : (
{stats.recentDocs.map((doc) => (
{doc.title}
{doc.folder?.name || "Sem categoria"}
{formatDate(doc.createdAt)}
))}
)}
{/* Summary Column */}
Status do Portal
O portal está online e sincronizado com os últimos envios de documentos.
Informações Rápidas
Organização
{organization.name}
Seu Perfil
{user.role}
Data
{new Date().toLocaleDateString('pt-BR')}
);
}
function Users(props: any) {
return (
)
}