import { useServices } from "../../hooks/useServices.js"; import { useDevices } from "../../hooks/useDevices.js"; import { useCategories } from "../../hooks/useCategories.js"; import { AdminPageHeader } from "./AdminPageHeader.js"; function StatCard({ label, value }: { label: string; value: number | string }) { return (
{value}
{label}
); } export function DashboardPage() { const { data: services } = useServices(); const { data: devices } = useDevices(); const { data: categories } = useCategories(); const onlineDevices = devices?.filter((d) => d.online).length ?? 0; const favoriteServices = services?.filter((s) => s.favorite).length ?? 0; const recentlyScanned = [...(devices ?? [])] .filter((d) => d.lastScan) .sort((a, b) => (b.lastScan ?? "").localeCompare(a.lastScan ?? "")) .slice(0, 5); return (

Zuletzt gescannte Geräte

{recentlyScanned.length === 0 ? (

Noch keine Scans durchgeführt. Starte einen Scan unter „Geräte“ oder „Scanner“.

) : (
{recentlyScanned.map((device) => ( ))}
{device.hostname} {device.ip} {device.lastScan ? new Date(device.lastScan).toLocaleString("de-DE") : "–"}
)}

Kategorien

{categories?.length ?? 0} Kategorie(n) angelegt.

); }