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 + return } if (!tenant) { @@ -40,7 +45,7 @@ function TenantDetailPage() { -
+
+ + +
+

{sitesData?.sites.length ?? 0}

+

Sites

+
+ + · + + Manage sites + + ·