import { useState } from 'react'; import { Activity, ScrollText, SlidersHorizontal, X } from 'lucide-react'; import { createPortal } from 'react-dom'; import SidebarPerfProbeMonitorTab from './perfProbe/SidebarPerfProbeMonitorTab'; import SidebarPerfProbeTogglesTab from './perfProbe/SidebarPerfProbeTogglesTab'; import SidebarPerfProbeLogsTab from './perfProbe/SidebarPerfProbeLogsTab'; import { resetPerfProbeFlags, type PerfProbeFlags } from '../../utils/perf/perfFlags'; import { clearPerfLiveOverlayPins } from '../../utils/perf/perfOverlayPins'; import { resetPerfOverlayAppearance } from '../../utils/perf/perfOverlayAppearance'; import { resetPerfOverlayMode } from '../../utils/perf/perfOverlayMode'; type TabId = 'monitor' | 'toggles' | 'logs'; interface Props { open: boolean; onClose: () => void; perfFlags: PerfProbeFlags; hotCacheEnabled: boolean; setHotCacheEnabled: (v: boolean) => void; normalizationEngine: string; setNormalizationEngine: (v: 'off' | 'loudness') => void; loggingMode: string; setLoggingMode: (v: 'off' | 'normal') => void; } export default function SidebarPerfProbeModal({ open, onClose, perfFlags, hotCacheEnabled, setHotCacheEnabled, normalizationEngine, setNormalizationEngine, loggingMode, setLoggingMode, }: Props) { const [tab, setTab] = useState('monitor'); if (!open) return null; const resetAll = () => { resetPerfProbeFlags(); clearPerfLiveOverlayPins(); resetPerfOverlayAppearance(); resetPerfOverlayMode(); }; return createPortal(
onClose()} role="dialog" aria-modal="true" aria-labelledby="perf-probe-title" >
e.stopPropagation()} >

Performance Probe

Live metrics with optional on-screen overlays, plus diagnostic disable toggles.

{tab === 'monitor' && } {tab === 'toggles' && ( )} {tab === 'logs' && }
, document.body, ); }