'use client'; import React from 'react'; import { OperationsNavId, OperationsRole } from './types'; interface OperationsSidebarProps { activeNav: OperationsNavId; onSelectNav: (nav: OperationsNavId) => void; isOpenOnMobile: boolean; onCloseMobile: () => void; role: OperationsRole; } export function OperationsSidebar({ activeNav, onSelectNav, isOpenOnMobile, onCloseMobile, role, }: OperationsSidebarProps) { const isOwner = role === 'owner'; const navItems: Array<{ id: OperationsNavId; label: string; icon: string; badge?: string; badgeType?: 'primary' | 'neutral' | 'disabled'; }> = [ { id: 'overview', label: 'Overview', icon: 'dashboard', }, { id: 'users', label: 'Users', icon: 'person_search', }, { id: 'incidents', label: 'Incidents', icon: 'assignment', }, { id: 'support', label: 'Support Center', icon: 'contact_support', }, { id: 'cms', label: 'Website Content', icon: 'edit_note', }, { id: 'audit', label: 'Audit', icon: 'verified_user', badge: isOwner ? 'Owner' : 'Restricted', badgeType: isOwner ? 'primary' : 'neutral', }, { id: 'operators', label: 'Operators', icon: 'group', badge: 'Disabled', badgeType: 'disabled', }, { id: 'session', label: 'My Session', icon: 'badge', }, ]; const sidebarContent = (
{/* Brand Masthead */}
terminal
Operations Platform Console
{/* Navigation Links */} {/* Footer Authority Boundary Notice */}
shield_lock Isolated Session

Authority strictly bounded to ops.operators.

); return ( <> {/* Desktop Persistent Sidebar */} {/* Mobile Backdrop & Drawer */} {isOpenOnMobile && (
{/* Backdrop */} )} ); }