diff --git a/frontend/src/components/layout/Sidebar.tsx b/frontend/src/components/layout/Sidebar.tsx
index 25fc27e..899ade3 100644
--- a/frontend/src/components/layout/Sidebar.tsx
+++ b/frontend/src/components/layout/Sidebar.tsx
@@ -14,6 +14,7 @@ import {
ClipboardList,
Wifi,
BarChart3,
+ MapPin,
} from 'lucide-react'
import { cn } from '@/lib/utils'
import { useAuth, isSuperAdmin, isTenantAdmin } from '@/lib/auth'
@@ -110,6 +111,15 @@ export function Sidebar() {
},
]
: []),
+ ...(!isSuperAdmin(user) && user?.tenant_id
+ ? [
+ {
+ label: 'Sites',
+ href: `/tenants/${user.tenant_id}/sites`,
+ icon: MapPin,
+ },
+ ]
+ : []),
{
label: 'Wireless',
href: '/wireless',
diff --git a/frontend/src/routes/_authenticated/tenants/$tenantId/index.tsx b/frontend/src/routes/_authenticated/tenants/$tenantId/index.tsx
index d390ed2..a6086ca 100644
--- a/frontend/src/routes/_authenticated/tenants/$tenantId/index.tsx
+++ b/frontend/src/routes/_authenticated/tenants/$tenantId/index.tsx
@@ -1,7 +1,7 @@
import { createFileRoute, Link } from '@tanstack/react-router'
import { useQuery } from '@tanstack/react-query'
-import { Users, Monitor, Building2 } from 'lucide-react'
-import { tenantsApi } from '@/lib/api'
+import { Users, Monitor, Building2, MapPin } from 'lucide-react'
+import { tenantsApi, sitesApi } from '@/lib/api'
import { formatDate } from '@/lib/utils'
import { CardGridSkeleton } from '@/components/ui/page-skeleton'
@@ -17,8 +17,13 @@ function TenantDetailPage() {
queryFn: () => tenantsApi.get(tenantId),
})
+ const { data: sitesData } = useQuery({
+ queryKey: ['sites', tenantId],
+ queryFn: () => sitesApi.list(tenantId),
+ })
+
if (isLoading) {
- return
{sitesData?.sites.length ?? 0}
+Sites
+