'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import { useQuery } from '@tanstack/react-query' import { monitorAPI } from '@/lib/api' import { toast } from 'sonner' import { DashboardLayout } from '@/components/layout/dashboard-layout' import { Button } from '@/components/ui/button' import { Card, CardContent } from '@/components/ui/card' import { Badge } from '@/components/ui/badge' export default function DashboardPage() { const router = useRouter() const { data, isLoading } = useQuery({ queryKey: ['monitors'], queryFn: async () => { const response = await monitorAPI.list() return response.monitors }, }) if (isLoading) { return (

Loading...

) } const monitors = data || [] const activeMonitors = monitors.filter((m: any) => m.status === 'active').length const errorMonitors = monitors.filter((m: any) => m.status === 'error').length const recentChanges = monitors.filter((m: any) => m.last_change_at).length return ( {/* Stats Grid */}

Total Monitors

{monitors.length}

Active

{activeMonitors}

Errors

{errorMonitors}

Recent Changes

{recentChanges}

{/* Quick Actions */}

Quick Actions

{/* Recent Monitors */}

Recent Monitors

{monitors.length === 0 ? (

No monitors yet

Start monitoring your first website

) : (
{monitors.slice(0, 5).map((monitor: any) => ( router.push(`/monitors/${monitor.id}`)}>

{monitor.name || monitor.url}

{monitor.url}

{monitor.status}
))}
)}
) }