'use client'; import { useState, useCallback } from "react"; import { useSensors } from "@/hooks/use-sensors"; import { LoadingScreen } from "@/components/LoadingScreen"; import { CreateSensorDialog } from "@/components/CreateSensorDialog"; import { List, MapPin } from "lucide-react"; import Link from "next/link"; import dynamic from 'next/dynamic'; const GlobalMap = dynamic(() => import('@/components/GlobalMap').then(m => m.GlobalMap), { ssr: false, loading: () =>
}); export default function HomeClient() { const { data: sensors, isLoading } = useSensors(); const [pendingLatLng, setPendingLatLng] = useState<{ lat: number; lng: number } | null>(null); const [mapDialogOpen, setMapDialogOpen] = useState(false); const handleMapClick = useCallback((lat: number, lng: number) => { setPendingLatLng({ lat, lng }); setMapDialogOpen(true); }, []); const handleDialogClose = useCallback((open: boolean) => { setMapDialogOpen(open); if (!open) { setPendingLatLng(null); } }, []); if (isLoading) { return ; } return (
{/* Map Layer - sits underneath the UI layer */}
{/* Control Panel Overlay */}
{/* Header */}

SENSOR NODES

{/* Map Click Instructions */}
CLICK MAP TO DEPLOY NODE AT LOCATION
{/* Sensor List */}
{!sensors || sensors.length === 0 ? (

GRID OFFLINE

No nodes detected in current sector. Deploy a new node to initialize grid.

) : ( sensors.map((sensor) => (
{sensor.locationName || "Unknown Sector"}
ID: {sensor.sensorId}
ONLINE
)) )}
{/* Map-click triggered dialog (controlled externally) */}
); }