import React from 'react'; import { useTranslation } from 'react-i18next'; import { StatCard } from '@/components/shared/StatCard'; import { ActivityFeed, ActivityItem } from '@/components/shared/ActivityFeed'; import { useUnifiedContacts, useAuditLog } from '@/api/hooks'; export function DashboardPage() { const { t } = useTranslation(); const { data: companiesData } = useUnifiedContacts(1, 1, undefined, 'company'); const { data: contactsData } = useUnifiedContacts(1, 1, undefined, 'person'); const { data: auditData, isError: auditError } = useAuditLog(1, 5); const totalCompanies = companiesData?.total ?? 0; const totalContacts = contactsData?.total ?? 0; const auditEntries = auditData?.items ?? []; const activeThisWeek = auditEntries.filter((e) => { if (!e.timestamp) return false; const d = new Date(e.timestamp); const weekAgo = new Date(); weekAgo.setDate(weekAgo.getDate() - 7); return d >= weekAgo; }).length; const newThisMonth = auditEntries.filter((e) => { if (!e.timestamp) return false; const d = new Date(e.timestamp); const monthAgo = new Date(); monthAgo.setMonth(monthAgo.getMonth() - 1); return d >= monthAgo; }).length; const activities: ActivityItem[] = auditError ? [] : auditEntries.map((entry) => ({ id: `${entry.timestamp}-${entry.user}-${entry.action}`, user: entry.user || 'System', action: entry.action || '', time: entry.timestamp ? new Date(entry.timestamp).toLocaleString('de-DE') : '', avatarUrl: null, })); return (
{t('dashboard.activityUnavailable')}
) : (