Download desktop/src/components/layout/ContentRouter.tsx from chenbhao/codev: direct link, hf CLI and curl.
- Browser
- Download file 2.16 kB
-
https://huggingface.co/chenbhao/codev/resolve/e40073cc959cd4729bf4009662bca374c5c4e266/desktop/src/components/layout/ContentRouter.tsx
- Command line
-
hf download hf://chenbhao/codev@e40073cc959cd4729bf4009662bca374c5c4e266/desktop/src/components/layout/ContentRouter.tsx
-
curl -L -o ContentRouter.tsx https://huggingface.co/chenbhao/codev/resolve/e40073cc959cd4729bf4009662bca374c5c4e266/desktop/src/components/layout/ContentRouter.tsx
2.16 kB
| import type { ReactNode } from 'react' | |
| import { useTabStore } from '../../stores/tabStore' | |
| import { EmptySession } from '../../pages/EmptySession' | |
| import { ActiveSession } from '../../pages/ActiveSession' | |
| import { ScheduledTasks } from '../../pages/ScheduledTasks' | |
| import { Settings } from '../../pages/Settings' | |
| import { TerminalSettings } from '../../pages/TerminalSettings' | |
| import { Companion } from '../../pages/Companion' | |
| export function ContentRouter() { | |
| const activeTabId = useTabStore((s) => s.activeTabId) | |
| const tabs = useTabStore((s) => s.tabs) | |
| const activeTabType = tabs.find((t) => t.sessionId === activeTabId)?.type | |
| const terminalTabs = tabs.filter((tab) => tab.type === 'terminal') | |
| let page: ReactNode = null | |
| if (!activeTabId || !activeTabType) { | |
| page = <EmptySession /> | |
| } else if (activeTabType === 'settings') { | |
| page = <Settings /> | |
| } else if (activeTabType === 'scheduled') { | |
| page = <ScheduledTasks /> | |
| } else if (activeTabType === 'companion') { | |
| page = <Companion /> | |
| } else if (activeTabType !== 'terminal') { | |
| page = <ActiveSession /> | |
| } | |
| return ( | |
| <div className="relative min-h-0 flex-1 overflow-hidden"> | |
| {page && ( | |
| <div className="absolute inset-0 z-10 flex min-h-0 flex-col overflow-hidden"> | |
| {page} | |
| </div> | |
| )} | |
| {terminalTabs.map((tab) => { | |
| const active = tab.sessionId === activeTabId | |
| const visible = activeTabType === 'terminal' && active | |
| return ( | |
| <div | |
| key={tab.sessionId} | |
| aria-hidden={!visible} | |
| data-testid={`terminal-tab-panel-${tab.sessionId}`} | |
| className={`absolute inset-0 flex min-h-0 flex-col overflow-hidden ${ | |
| visible ? 'z-20 opacity-100' : 'pointer-events-none z-0 opacity-0' | |
| }`} | |
| > | |
| <TerminalSettings | |
| active={active} | |
| cwd={tab.terminalCwd} | |
| workspace | |
| testId={`terminal-host-${tab.sessionId}`} | |
| onNewTerminal={() => useTabStore.getState().openTerminalTab(tab.terminalCwd)} | |
| /> | |
| </div> | |
| ) | |
| })} | |
| </div> | |
| ) | |
| } | |