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