'use client'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { apiClient } from '@/lib/api-client'; import { KeygenLicense } from '@/lib/types'; import { useQuery } from '@tanstack/react-query'; import { Key, Monitor, Package, Users } from 'lucide-react'; export default function Dashboard() { const { data: users } = useQuery({ queryKey: ['users'], queryFn: () => apiClient.getUsers(1, 100), }); const { data: products } = useQuery({ queryKey: ['products'], queryFn: () => apiClient.getProducts(1, 100), }); const { data: licenses } = useQuery({ queryKey: ['licenses'], queryFn: () => apiClient.getLicenses(1, 100), }); const { data: machines } = useQuery({ queryKey: ['machines'], queryFn: () => apiClient.getMachines(1, 100), }); const stats = [ { title: 'Total Users', value: users?.data?.length || 0, icon: Users, description: 'Registered users', }, { title: 'Products', value: products?.data?.length || 0, icon: Package, description: 'Available products', }, { title: 'Active Licenses', value: licenses?.data?.filter((l: KeygenLicense) => l.attributes.status === 'active').length || 0, icon: Key, description: 'Currently active', }, { title: 'Machines', value: machines?.data?.length || 0, icon: Monitor, description: 'Registered machines', }, ]; return ( <>
Overview of your Keygen licensing server
{stat.description}
New license created
2 minutes ago
User registered
15 minutes ago
Machine activated
1 hour ago