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 (
);
}
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.
);
}