import { Fragment, h, render } from 'preact' import { useCallback, useState } from 'preact/hooks' import useConnection from './hooks/useConnection' import PaneHeader from './layout/PaneHeader' import SplitPane from './layout/SplitPane' import ListPanel from './layout/ListPanel' import AuthOverlay from './components/AuthOverlay' import BlocksView from './components/BlocksView' import Profiler from './components/Profiler' import ReachabilityView from './components/ReachabilityView' import StateView from './components/StateView' import TraceDetail from './components/TraceDetail' import TraceEntry from './components/TraceEntry' const DETAIL_TABS = ['Details', 'Profiler', 'State', 'Blocks', 'Reachability'] as const function Panel() { const connection = useConnection() const selectedTrace = connection.traces[connection.selectedIndex] const [activeTab, setActiveTab] = useState(0) const handleDetailKeyDown = useCallback((event: KeyboardEvent) => { if (event.key === 'ArrowRight') { event.preventDefault() setActiveTab(prev => Math.min(prev + 1, DETAIL_TABS.length - 1)) } if (event.key === 'ArrowLeft') { event.preventDefault() setActiveTab(prev => Math.max(prev - 1, 0)) } }, []) return (