feat(14-02): integrate wireless tabs into device detail and add wireless links page

- Add Stations tab to StandardConfigSidebar (Monitor section)
- Render WirelessStationTable + RFStatsCard in stations tab
- Create standalone wireless-links route page
- Update Sidebar nav to point Wireless Links to tenant-scoped page

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jason Staack
2026-03-19 06:47:36 -05:00
parent eec89b802a
commit 3f7fa7d62c
5 changed files with 70 additions and 5 deletions

View File

@@ -120,11 +120,18 @@ export function Sidebar() {
},
]
: []),
{
label: 'Wireless',
href: '/wireless',
icon: Wifi,
},
...(!isSuperAdmin(user) && user?.tenant_id
? [{
label: 'Wireless Links',
href: `/tenants/${user.tenant_id}/wireless-links`,
icon: Wifi,
}]
: [{
label: 'Wireless Links',
href: '/wireless',
icon: Wifi,
}]
),
{
label: 'Traffic',
href: '/traffic',

View File

@@ -54,6 +54,8 @@ import { SnmpPanel } from '@/components/config/SnmpPanel'
import { ClientsTab } from '@/components/network/ClientsTab'
import { VpnTab } from '@/components/network/VpnTab'
import { LogsTab } from '@/components/network/LogsTab'
import { WirelessStationTable } from '@/components/wireless/WirelessStationTable'
import { RFStatsCard } from '@/components/wireless/RFStatsCard'
interface SimpleConfigViewProps {
tenantId: string
@@ -107,6 +109,12 @@ export function SimpleConfigView({
{activeTab === 'wireless' && (
<WirelessTab tenantId={tenantId} deviceId={deviceId} active />
)}
{activeTab === 'stations' && (
<div className="space-y-4">
<WirelessStationTable tenantId={tenantId} deviceId={deviceId} active />
<RFStatsCard tenantId={tenantId} deviceId={deviceId} active />
</div>
)}
{activeTab === 'interfaces' && (
<InterfacesPanel tenantId={tenantId} deviceId={deviceId} active />
)}

View File

@@ -36,6 +36,7 @@ const STANDARD_GROUPS: SidebarGroup[] = [
{ id: 'health', label: 'Health' },
{ id: 'traffic', label: 'Traffic' },
{ id: 'wireless', label: 'Wireless' },
{ id: 'stations', label: 'Stations' },
],
},
{