import React from 'react' import { FaFileAlt, FaDownload } from 'react-icons/fa' import dayjs from 'dayjs' import { DocumentDto } from '@/proxy/intranet/models' import { useLocalization } from '@/utils/hooks/useLocalization' import { getFileIcon, getFileType } from '@/proxy/intranet/utils' import { FILE_URL } from '@/constants/app.constant' import Button from '@/components/ui/Button' import type { DashboardWidgetDefinition } from '../dashboardWidget' const formatFileSize = (bytes: number): string => { if (bytes === 0) return '0 B' const k = 1024 const sizes = ['B', 'KB', 'MB', 'GB'] const i = Math.floor(Math.log(bytes) / Math.log(k)) return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}` } const RecentDocuments: React.FC<{ documents: DocumentDto[] }> = ({ documents }) => { const { translate } = useLocalization() return (

{translate('::App.DashboardWidget.Documents')}

{documents.length > 0 ? ( documents.slice(0, 3).map((doc) => (
{getFileIcon(doc.extension)}

{doc.name}

{getFileType(doc.extension)} • {formatFileSize(doc.size)}

{dayjs(doc.modifiedAt).fromNow()} {doc.isReadOnly && ( <> • 🔒 {translate('::App.Platform.ReadOnly')} )}
)) ) : (
{translate('::App.RecentDocuments.NoDocuments')}
)}
) } export const dashboardWidget: DashboardWidgetDefinition = { id: 'documents', render: ({ dashboard }) => , } export default RecentDocuments