diff --git a/frontend/src/routes/_authenticated/tenants/$tenantId/sites/$siteId.tsx b/frontend/src/routes/_authenticated/tenants/$tenantId/sites/$siteId.tsx index e131bee..7575ccd 100644 --- a/frontend/src/routes/_authenticated/tenants/$tenantId/sites/$siteId.tsx +++ b/frontend/src/routes/_authenticated/tenants/$tenantId/sites/$siteId.tsx @@ -1,9 +1,13 @@ +import { useState } from 'react' import { createFileRoute, Link } from '@tanstack/react-router' import { useQuery } from '@tanstack/react-query' import { sitesApi } from '@/lib/api' import { MapPin, ArrowLeft } from 'lucide-react' import { Button } from '@/components/ui/button' import { cn } from '@/lib/utils' +import { SiteHealthGrid } from '@/components/sites/SiteHealthGrid' +import { SiteSectorView } from '@/components/sites/SiteSectorView' +import { SiteLinksTab } from '@/components/sites/SiteLinksTab' export const Route = createFileRoute('/_authenticated/tenants/$tenantId/sites/$siteId')({ component: SiteDetailPage, @@ -11,6 +15,7 @@ export const Route = createFileRoute('/_authenticated/tenants/$tenantId/sites/$s function SiteDetailPage() { const { tenantId, siteId } = Route.useParams() + const [activeTab, setActiveTab] = useState<'health' | 'sectors' | 'links'>('health') const { data: site, isLoading } = useQuery({ queryKey: ['sites', tenantId, siteId], @@ -111,15 +116,28 @@ function SiteDetailPage() { - {/* Placeholder for device list -- Phase 14 will add full site dashboard */} -
-

Assigned Devices

-

- {site.device_count > 0 - ? `${site.device_count} device${site.device_count !== 1 ? 's' : ''} assigned to this site. Full device list coming in site dashboard.` - : 'No devices assigned to this site yet. Assign devices from the fleet page.'} -

+ {/* Tab bar */} +
+ {(['health', 'sectors', 'links'] as const).map((tab) => ( + + ))}
+ + {/* Tab content */} + {activeTab === 'health' && } + {activeTab === 'sectors' && } + {activeTab === 'links' && }
) }