diff --git a/frontend/src/components/layout/Header.tsx b/frontend/src/components/layout/Header.tsx
deleted file mode 100644
index f45a6bf..0000000
--- a/frontend/src/components/layout/Header.tsx
+++ /dev/null
@@ -1,226 +0,0 @@
-// DEPRECATED: Replaced by ContextStrip.tsx — keeping for reference during transition
-import { useEffect } from 'react'
-import { useNavigate, Link } from '@tanstack/react-router'
-import { LogOut, ChevronDown, User, Search, Sun, Moon, RefreshCw, Menu, Settings } from 'lucide-react'
-import { useQuery } from '@tanstack/react-query'
-import { useCommandPalette } from '@/components/command-palette/useCommandPalette'
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuLabel,
- DropdownMenuSeparator,
- DropdownMenuTrigger,
-} from '@/components/ui/dropdown-menu'
-import { useAuth, isSuperAdmin } from '@/lib/auth'
-import { useUIStore } from '@/lib/store'
-import { tenantsApi } from '@/lib/api'
-import { useEventStreamContext } from '@/contexts/EventStreamContext'
-import type { ConnectionState } from '@/hooks/useEventStream'
-
-// ─── Connection State Indicator ──────────────────────────────────────────────
-
-const CONNECTION_CONFIG: Record<
- ConnectionState,
- { colorClass: string; label: string; pulse: boolean }
-> = {
- connected: { colorClass: 'bg-success', label: 'Connected', pulse: false },
- connecting: { colorClass: 'bg-warning', label: 'Connecting...', pulse: true },
- reconnecting: { colorClass: 'bg-warning', label: 'Reconnecting...', pulse: true },
- disconnected: { colorClass: 'bg-error', label: 'Disconnected', pulse: false },
-}
-
-function formatTime(date: Date): string {
- return date.toLocaleTimeString(undefined, {
- hour: '2-digit',
- minute: '2-digit',
- second: '2-digit',
- })
-}
-
-function ConnectionIndicator({
- state,
- lastConnectedAt,
- onReconnect,
-}: {
- state: ConnectionState
- lastConnectedAt: Date | null
- onReconnect: () => void
-}) {
- const { colorClass, label, pulse } = CONNECTION_CONFIG[state]
-
- return (
-
-
- {/* Tooltip on hover */}
-
-
-
{label}
- {lastConnectedAt && (
-
- Last connected: {formatTime(lastConnectedAt)}
-
- )}
- {state === 'disconnected' && (
-
- )}
-
-
-
- )
-}
-
-// ─── Header ──────────────────────────────────────────────────────────────────
-
-export function Header() {
- const { user, logout } = useAuth()
- const { selectedTenantId, setSelectedTenantId, theme, setTheme } = useUIStore()
- const { connectionState, lastConnectedAt, reconnect } = useEventStreamContext()
- const navigate = useNavigate()
-
- const SYSTEM_TENANT_ID = '00000000-0000-0000-0000-000000000000'
-
- const { data: tenants } = useQuery({
- queryKey: ['tenants'],
- queryFn: tenantsApi.list,
- enabled: isSuperAdmin(user),
- select: (data) => data.filter((t) => t.id !== SYSTEM_TENANT_ID),
- })
-
- const selectedTenant = tenants?.find((t) => t.id === selectedTenantId)
-
- // Auto-select when there's exactly one tenant and nothing selected
- useEffect(() => {
- if (isSuperAdmin(user) && tenants && tenants.length === 1 && !selectedTenantId) {
- setSelectedTenantId(tenants[0].id)
- }
- }, [tenants, selectedTenantId, user, setSelectedTenantId])
-
- const handleLogout = async () => {
- await logout()
- void navigate({ to: '/login' })
- }
-
- const roleLabel: Record = {
- super_admin: 'Super Admin',
- tenant_admin: 'Admin',
- operator: 'Operator',
- viewer: 'Viewer',
- }
-
- return (
-
- {/* Left: hamburger + tenant context */}
-
-
- {isSuperAdmin(user) && tenants && tenants.length > 0 && (
-
-
- {selectedTenant ? selectedTenant.name : 'All Organizations'}
-
-
-
- Organization Context
-
- setSelectedTenantId(null)}>
- All Organizations
-
- {tenants.map((tenant) => (
- setSelectedTenantId(tenant.id)}
- >
- {tenant.name}
-
- ))}
-
-
- )}
-
-
- {/* Right: actions + user menu */}
-
- {/* Search trigger */}
-
-
- {/* Dark/light mode toggle */}
-
-
- {/* SSE connection state indicator */}
-
-
-
-
-
-
-
- {user?.name ?? user?.email}
- {/* Only show role if it differs from the display name */}
- {(user?.name ?? user?.email) !== (roleLabel[user?.role ?? ''] ?? user?.role) && (
-
- {roleLabel[user?.role ?? ''] ?? user?.role}
-
- )}
-
-
-
-
- {user?.email}
-
-
-
-
-
- Settings
-
-
-
- void handleLogout()} className="text-error" data-testid="button-sign-out">
-
- Sign out
-
-
-
-
-
- )
-}