'use client'; import type { BeadIssue } from '../../lib/types'; import type { ProjectScopeOption } from '../../lib/project-scope'; import { TopBar } from './top-bar'; import { LeftPanel } from './left-panel'; import { RightPanel } from './right-panel'; import { MobileNav } from './mobile-nav'; import { useUrlState } from '../../hooks/use-url-state'; import { GraphView } from '../graph/graph-view'; export interface UnifiedShellProps { issues: BeadIssue[]; projectRoot: string; projectScopeKey: string; projectScopeOptions: ProjectScopeOption[]; projectScopeMode: 'single' | 'aggregate'; } export function UnifiedShell({ issues, }: UnifiedShellProps) { const { view, taskId, setTaskId, graphTab, setGraphTab, panel } = useUrlState(); const handleGraphSelect = (id: string) => { setTaskId(id); }; const renderMiddleContent = () => { if (view === 'graph') { return ( ); } return (

{view === 'social' && 'Social View'} {view === 'swarm' && 'Swarm View'}

{view === 'social' && 'Activity feed with blocks/unlocks coming soon'} {view === 'swarm' && 'Team health dashboard coming soon'}

); }; return (
{/* TOP BAR: 3rem fixed */} {/* MAIN AREA: CSS Grid [13rem | 1fr | 17rem] */}
{/* LEFT PANEL: 13rem channel tree */} {/* MIDDLE CONTENT: flex-1 */}
{renderMiddleContent()}
{/* RIGHT PANEL: 17rem detail strip */}
{/* MOBILE NAV: Bottom tab bar */}
); }